Java 基础-this 关键字
this 关键字的应用
- 使用 this 关键字引用当前类的实例变量
- 使用 this 关键字调用当前类的实例方法
- 在构造方法中使用 this 关键字作为参数
- 使用 this 关键字作为方法调用中的参数传递
- 使用 this() 关键字调用当前类的其它构造方法(必须放在构造方法的第一行)
- 使用 this 关键字返回当前类的实例
使用 this 关键字引用当前类的实例变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Test {
int a;
int b;
Test(int a, int b) {
this.a = a;
this.b = b;
}
void display() {
System.out.println("a = " + a + " b = " + b);
}
public static void main(String[] args) {
Test object = new Test(10, 20);
object.display();
}
}
a = 10 b = 20
使用 this 关键字调用当前类的实例方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Test {
void display() {
this.show();
System.out.println("Inside display function");
}
void show() {
System.out.println("Inside show funcion");
}
public static void main(String args[]) {
Test t1 = new Test();
t1.display();
}
}
Inside show funcion Inside display function
在构造方法中使用 this 关键字作为参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class A {
B obj;
A(B obj) {
this.obj = obj;
obj.display();
}
}
class B {
int x = 5;
B() {
A obj = new A(this);
}
void display() {
System.out.println("Value of x in Class B:" + x);
}
public static void main(String[] args) {
B obj = new B();
}
}
Value of x in Class B:5
使用 this 关键字作为方法调用中的参数传递
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Test {
int a;
int b;
Test() {
a = 10;
b = 20;
}
void display(Test obj) {
System.out.println("a = " + obj.a + " b = " + obj.b);
}
void get() {
display(this);
}
public static void main(String[] args) {
Test object = new Test();
object.get();
}
}
a = 10 b = 20
使用 this() 关键字调用当前类的其它构造方法(必须放在构造方法的第一行)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Test {
int a;
int b;
Test() {
this(10, 20);
System.out.println("Inside default constructor");
}
Test(int a, int b) {
this.a = a;
this.b = b;
System.out.println("Inside parameterized constructor");
}
public static void main(String[] args) {
Test object = new Test();
}
}
Inside parameterized constructor Inside default constructor
使用 this 关键字返回当前类的实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Test {
int a;
int b;
Test() {
a = 10;
b = 20;
}
Test get() {
return this;
}
void display() {
System.out.println("a = " + a + " b = " + b);
}
public static void main(String[] args) {
Test object = new Test();
object.get().display();
}
}
a = 10 b = 20
参考资料
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用