目录
一.this关键字
作用:
1.常在类中的方法或者构造方法中使用this关键字用来代表当前对象的成员变量,解决与局部变量重名问题
2.使用this关键字用来引用方法或构造方法
二.static关键字
static被称为静态,可以用来修饰类中的成员变量,方法,代码块,内部类。
static不依赖实例,在类被加载完成时,静态成员也会随着类的加载而加载。
static成员被所有同一类的实例所共享,只有一份。
静态成员我们常用 类名.静态成员 的格式来调用,也可以通过对象名.静态成员的格式来访问
{
示例1: 类名.静态成员
示例2: 对象名.静态成员
}
用static修饰的方法就是静态方法
静态方法可以在本类的任意方法,代码块中调用,也可以在其他类中通过上述格式调用
static方法中只可以用static修饰的变量和static修饰的方法,不能访问非static的成员变量,因为不需要创建实例就可以使用,所以在static方法中使用this关键字
三.代码块
代码块在类中声明,类似一个没有名称的方法体(代码块),代码分实例块和静态块
1.实例代码块
实例代码块在创建对象时会被自动调用
//实例代码块
{
任何被java所允许的语法
}
2.静态代码块
静态代码块在类被加载时会被自动调用
//静态代码块
static{
任何被java所允许的语法
}
3.示例
举个例子,左边是Test类,右边是测试区
由上图可知我们创建了一个静态代码块和一个实例代码块
下图是编译运行后控制台的结果
可以看出在使用static成员cnt后控制台输出了一个静态代码块1,这是因为在我们调用类中的static成员前,类先需要被加载出来,所以静态代码块随着类的加载而加载
然后我们又创建了一个实例,在我们创建实例后实例代码块随着实例的创建而加载
我们可以看到静态代码块1与实例代码块1之间存在一个回车,这是因为静态代码块只会在类第一次被加载时而调用,而实例代码块则是每一次创建实例时都会被调用