Java学习笔记_004_类和对象

时间:2023-02-24 08:40:04
生产汽车的过程
设计图:
属性:
方向盘,轮胎,框等
功能:
载人,跑停,拐弯等

类--设计图
对象--汽车

类(设计图)
成员变量(属性)
成员方法(功能)

注意:在一个文件中只能有一个public类(这是这个类的构造函数)

1.设计图纸(大象类,冰箱类)
2.定义类方法(大象进冰箱,冰箱自己开关门)
3.在main()方法中构造具体的大象对象和冰箱对象(xiaoming、xiaohong)
4.使用构造的对象调用在类定义的成员方法(冰箱开门,大象进冰箱,冰箱关门)


语法:
class 类名{
//定义成员变量
int age;
double weight;
String name;
char gendar;
boolean isMarried;

//定义成员方法
public void eat(){//viod是没有返回值的方法
System.out.ptintln("大象吃得多。。")
}
}
定义方法的语法:
修饰符 返回值类型 方法名(参数列表){
方法体;
return 值;
}
public int method(int a,int b ){
return 10;



构造对象的语法格式:
类名 对象名 = new 类名();//括号里面可以没有参数,调用无参构造方法,有参数则调用有参构造方法
构造方法(当使用new来创建对象的时候就会首先执行的方法)
public 类名{

}


对象使用成员方法的格式: 
对象名.成员方法()
对象使用成员变量的格式:
对象名.成员变量 


public class ElephantDemo{
public static void main(String[] args){
//构造对象
Elephant xiaoming = new Elephant();
   hong.open();
xiaoming.in();
xiaohong.close();
}
}


局部变量和成员变量
1.定义在类中,方法外的变量叫成员变量
2.定义在方法中的叫局部变量
3.成员变量在堆内存(heap)具有初始值,局部变量在栈内存(stack)必须初始化
4.两者同名时候就近使用变量(按顺序最后一个定义的)
5.局部变量只能在当前方法中使用。成员变量随着对象的创建而创建,随着对象销毁而销毁。局部变量随着方法的创建而创建,随着方法销毁而销毁。



成员变量
存放位置:堆内存heap(有默认值)
初始化顺序:在构造方法之前
构造方法
public 类名(){}
无参(若没有有参方法的话,系统自动生成)
有参
成员方法
修饰符 返回值类型(或者void) 方法名(参数列表){}
成员方法的重载(同名):
与参数的类型和个数相关
与参数名和返回值类型无关
匿名对象
new Student().方法()
new Student().成员变量名()


常把成员变量封装起来,private,另建立get()set()方法来赋值取值确保成员变量范围在规划之内。或者使用带参的构造方法配合this进行赋值。


关键字:   this.   作用this.变量名默认为成员变量(代表着调用此方法的那个对象)     this.  不能使用在static修饰的方法中

关键字:   static 静态修饰符
使用方法:类名.(使用static修饰的对象)
静态成员会先于对象产生,静态成员是属于类的,随着类产生,随着类销毁。
(因此,创建的属于类的对象会共享这个static变量,new第二个对象的时候第二个对象的static变量会覆盖第一个new所产生的statuc变量)


创建类的总体顺序:
静态成员变量--静态代码块--非静态成员变量--构造代码块--构造方法--成员方法

代码块:
局部代码块生命周期仅在自己的代码块中
构造代码块在成员变量之后,构造方法之前执行
静态代码块在只在类加载的时候执行一次