this
this是java中的一个关键字,可以看做是一个引用,一个变量。存储在java虚拟机中堆内存中的对象的内部,它保存了当前·对象的地址指向本身。任何一个堆内存中的java对象都有一个this.
可以看出 zs.name和this.name在User中是一样的,都是指向该对象的name。
this指向“当前对象”,也可以说this代表当前对象,this可以使用在构造方法和实例方法中,因为this有对象的存在所以this不可以存在在静态方法中,不可以和static一同出来
this的使用
实例方法
实例方法的使用一定是使用对象来调用,因此就可以用引用来调用及this.来调用(this代表当前对象),所以是谁来调用这个方法this就代表谁。
构造方法
使用在构造方法中时,只有放在第一行,通过当前方法去调用本类的其他方法,目的是为了代码的复用,语法this(实际参数列表)
static
static是java中的关键字,表示静态的,可以用来修饰变量,方法,代码块{}等,它修饰的变量叫静态变量,修饰的方法叫静态方法,修饰的代码块叫静态代码块。在java中凡是由static修饰的都是类相关的,都不需要创建对象,可以通过类名来访问。
静态变量
在java中变量分为局部变量和成员变量,在方法体中声明的变量叫局部变量,使用范围较小,只能在该方法中使用,该方法使用完毕,局部变量的内存就释放了,局部变量存在于栈内存中。
在类体中声明的变量被称为成员变量,成员变量又分为实例变量和静态变量,声明变量时用static修饰的变量是静态变量,反之被称为实例变量。
实例变量是属于对象级别的,使用时必需先创建对象,通过引用来调用而静态变量只需要由“类名去访问”。
实例变量存储在堆内存当中,静态变量存储在方法区当中。实例变量在构造方法执行过程中初始化,静态变量在类加载时初始化。
静态方法
被static关键字所修饰的方法就是静态方法。可以直接通过“类名.”来调用这个方法
静态代码块
静态代码块在类加载时执行,并且只执行一次。
语法
类{
static{
java语句;
}
}