当一个引用 赋值为null 的时候,就代表这个引用不指向任何的对象

引用不能指向引用,只能说引用指向了另一个引用的对象.

一个引用不能指向多个对象

this引用的学习:

代表的是当前对象的引用,每一个成员方法的第一个参数默认是this

this.year 

this.month     加上this代表给当前的对象的属性赋值

this还有两种用法

this 访问构造方法

this访问成员方法

什么是构造方法?

构造方法非常特殊:这个方法没有返回值,方法名和类名是一样的!

如果你没有写任何的构造方法,此时java就会帮我们提供一个默认的,不带参数的构造方法!

而如果自己写了就会调用自己的,只会被调用一次

Test test = new Test();

这是实例化对象,此时就会调用对象的构造方法

当然另外设计构造方法可以添加参数构成方法的重载

如何当前对象的其他构造方法

java类和对象学习总结_构造方法

利用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.优先级

静态代码块>非静态代码块>不带参数的构造方法

静态的只执行一次