当一个引用 赋值为null 的时候,就代表这个引用不指向任何的对象
引用不能指向引用,只能说引用指向了另一个引用的对象.
一个引用不能指向多个对象
this引用的学习:
代表的是当前对象的引用,每一个成员方法的第一个参数默认是this
this.year
this.month 加上this代表给当前的对象的属性赋值
this还有两种用法
this 访问构造方法
this访问成员方法
什么是构造方法?
构造方法非常特殊:这个方法没有返回值,方法名和类名是一样的!
如果你没有写任何的构造方法,此时java就会帮我们提供一个默认的,不带参数的构造方法!
而如果自己写了就会调用自己的,只会被调用一次
Test test = new Test();
这是实例化对象,此时就会调用对象的构造方法
当然另外设计构造方法可以添加参数构成方法的重载
如何当前对象的其他构造方法
利用this(加参数);
1.必须放到第一行
2.且只有在构造方法内部才能用
this.x :访问当前对象的成员变量
this.fun() 访问当前对象的成员方法
this() 调用当前函数的其他构造方法
补充this不能调用静态的成员方法和属性
成员变量的生命周期 对象出生 ------>对象销毁就结束
局部变量 进入方法创建 ------->出方法结束
面向对象有三大特性: 封装 继承 多态
什么是封装
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外提供一些交互的接口和对象进行交互
访问修饰限定符
private 只能在当前类使用
default(什么都不加) 包访问权限
protected
public 都能使用
成员方法
1.静态成员方法/类方法
2.非静态成员方法
成员变量:
1.静态成员变量/类变量或者类成员
2.非静态成员变量/普通成员变量 静态成员不属于对象,所以不用通过对象的引用来访问,直接用类名就可以访问
普通成员方法内部可以使用静态成员方法的
在静态方法内部不能直接使用非静态的数据成员,只要是非静态的数据成员都需要进行对象的引用才能调用
静态的方法里面是不能使用this的
对于静态成员的初始化
1.直接赋值
public static String name = "小白";
2.默认初始化
3.通过get 和 set方法来初始化
public static int getsize() {
return size;
}
public static void setSize(int size) {
Student.size = size;
}
4.在构造对象是,可以在构造方法中进行赋值 (一般不推荐)
5.通过代码块进行赋值
普通代码块
构造块/非静态代码块/实例代码块
静态块
同步代码块
执行顺序
1.如果都是非静态,那么看定义的顺序谁在后,就是那个值
2.优先级
静态代码块>非静态代码块>不带参数的构造方法
静态的只执行一次