java中this的用法示例(症結字this)。本站提示廣大學習愛好者:(java中this的用法示例(症結字this))文章只能為提供參考,不一定能成為您想要的結果。以下是java中this的用法示例(症結字this)正文
this是指向自己的隱含的指針,簡略的說,哪一個對象挪用this地點的辦法,那末this就是哪一個對象。
示例代碼: TestThis_1.java
/* 成績:甚麼是this
* 輸入成果:
* A@4e44ac6a
*/
public class TestThis_1 {
public static void main(String[] args) {
A aa = new A();
System.out.println(aa.f()); //aa.f(), 前往aa這個對象的援用(指針)
}
}
class A {
public A f() {
return this; //前往挪用f()辦法的對象的A類對象的援用
}
}
this的罕見用法
1. 辨別同名變量
示例代碼: TestThis_2.java
/* this的罕見用法1:辨別同名變量
* 輸入成果:
* this. i = 1
* i = 33
*/
public class TestThis_2 {
public static void main(String[] args) {
A aa = new A(33);
}
}
class A {
public int i = 1; //這個i是成員變量
/*留意:普通不這麼寫,結構函數重要是為了初始化,這麼寫重要是為了便於懂得*/
public A(int i) { //這個i是部分變量
System.out.printf("this. i = %d\n", this.i); //this.i指的是對象自己的成員變量i
System.out.printf("i = %d\n", i); //這裡的i是部分變量i
}
}
2. 結構辦法間的互相挪用
示例代碼: TestThis_3.java
/* this的罕見用法2: 結構辦法中相互挪用*/
public class TestThis_3 {
public static void main(String[] args) {
}
}
class A {
int i, j, k;
public A(int i) {
this.i = i;
}
public A(int i, int j) {
/* i = 3; error 假如不正文失落就會報錯:用this(...)挪用結構辦法的時刻,只能把它放在第一句
* TestThis_3.java:20: error: call to this must be first statement in constructor
* this(i);
* ^
* 1 error
*/
this(i);
this.j = j;
}
public A(int i, int j, int k) {
this(i, j);
this.k = k;
}
}
留意事項
被static潤飾的辦法沒有this指針。由於被static潤飾的辦法是公共的,不克不及說屬於哪一個詳細的對象的。
示例代碼: TestThis_4.java
/*static辦法外部沒有this指針*/
public class TestThis_4 {
public static void main(String[] args) {
}
}
class A {
static A f() {
return this;
/* 失足信息:TestThis_4.java:10: error: non-static variable this cannot be referenced from a static context
* return this;
* ^
* 1 error
*/
}
}