this
是一个引用,是一个变量,这个变量保存了指向自身的内存地址;this
存储在 JVM 堆内存 Java 对象内部;创建 100 个 Java 对象,每一个对象都有
this
,也就是说有 100 个不同的this
;this
可以出现在“实例方法”中,指向当前正在执行这个动作的对象(**this
代表当前对象**);在多数情况下都是可以省略不写的,用来区别局部变量和实例变量时,不能省略;
1
2
3
4
5
6
7private int id;
public void setId(int id) {
// 不可以采用这种方式
// id = id;
this.id = id;
}不能使用在带有
static
的方法中;在带有
static
的方法中不能“直接”访问实例变量和实例方法,因为实例变量和实例方法都需要对象存在。而static
的方法中是没有this
的,也就是说当前对象是不存在的,自然无法访问当前对象的实例变量和实例方法1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public class ThisText01 {
// 实例变量
String name;
// 实例方法
public void doSome() {
}
// 带有 static
public static void main(String[] args) {
// 没有 this
// System.out.println(name)
// doSome()
ThisText01 tt = new ThisText01();
System.out.println(tt.name);
tt.doSome();
}
}this
用在哪?- 可以使用在实例方法当中,代表当前对象【this.】
- 可以使用在构造方法当中,通过当前的构造方法调用其他的构造方法【this(实参);】
- 注意:this(实参);只能出现在构造函数第一行
综合例子
1 | package test0215; |