1 构造方法: 构造函数 构造器 构建器----给成员变量赋初值代码
= 作用: 给成员变量赋初始值
= 与类同名,没有返回值类型(连voi都没有)
=在创建(new)对象是被自动调用
=若自自己不写构造方法,则编译器默认提供一个无参构造方法,
若自己写了构造方法 则不再默认提供
=构造方法可以重载
2 this:指代当前对象,那个对象调用方法它指的就是那个对象
只能用在方法中,方法中访问成员变量之前默认有个this,
=this.成员变量名-----访问成员变量
==成员变量与局部变量同名时,若想访问成员变量则this不能省略
==
-
this.方法名()-----------------调用方法
-
this()---------------------------调用构造方法
class Student {
String name; //成员变量(整个类中)
int age;
String address;
//局部变量(当前方法中)
Student(String name,int age,String address){
this.name = name;
this.age = age;
this.address = address;
}
void study(){
System.out.println(name+"在学习...");
}
void sayHi(){
System.out.println("大家好,我叫"+name+",今
年"+age+"岁了,家住"+address);
}
}
3 null: 表示空 没有指向任何对象,若引用值为null,则该引用不能进行任何点操作了,
若操作则发生NullPointerException空指针异常
4 引用类型数组
1)Bomb[] bs = new Bomb[3];
bs[0] = new Bomb(100,200); //1)给元素赋值需要去new个对象
bs[1] = new Bomb(200,300);
bs[2] = new Bomb(220,330);
//2)若想访问对象的数据,需要通过数组元素去打点
bs[0].x = 111; //给第1个炸弹的x修改为111
System.out.println(bs[1].width); //输出第2个炸弹的宽
bs[2].move(); //第3个炸弹移动
补充:
1 成员变量:写在类中,方法外-----有默认值
局部变量: 方法中--------没有默认值
2 java规定: 成员变量和局部变量是可以同名的
= 使用的时候默认采取的就是就近原则
3 内存管理: 由JVM来管理的
===堆: new出来的对象(成员变量)
===栈 局部变量(包括方法的参数)
===方法区:------
4 数组也是一个对象,所以数组对象也存储在堆中,
将数组的元素当作成员变量一并存储在堆中