談談 Java 中 this 的應用辦法。本站提示廣大學習愛好者:(談談 Java 中 this 的應用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是談談 Java 中 this 的應用辦法正文
1. this是指以後對象本身。
當在一個類中要明白指出應用對象本身的的變量或函數時就應當加上this援用。以下面這個例子中:
public class A {
String s = "Hello";
public A(String s) {
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}
public static void main(String[] args) {
new A("HelloWorld!");
}
}
運轉成果:
s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!
在這個例子中,結構函數A中,參數s與類A的變量s同名,這時候假如直接對s停止操作則是對參數s停止操作。若要對類A的變量s停止操作就應當用this停止援用。運轉成果的第一行就是直接對參數s停止打印成果;前面兩行分離是對對象A的變量s停止操作前後的打印成果。
2. 把this作為參數傳遞
當你要把本身作為參數傳遞給其余對象時,也能夠用this。如:
public class A {
public A() {
new B(this).print();
}
public void print() {
System.out.println("Hello from A!");
}
}
public class B {
A a;
public B(A a) {
this.a = a;
}
public void print() {
a.print();
System.out.println("Hello from B!");
}
}
運轉成果:
Hello from A!
Hello from B!
在這個例子中,對象A的結構函數中,用new B(this)把對象A本身作為參數傳遞給了對象B的結構函數。
3. 留意匿名類和外部類中的this。
有時刻,我們會用到一些外部類和匿名類。當在匿名類頂用this時,這個this則指的是匿名類或外部類自己。這時候假如我們要應用內部類的辦法和變量的話,則應當加上內部類的類名。以下面這個例子:
public class A {
int i = 1;
public A() {
Thread thread = new Thread() {
public void run() {
for(;;) {
A.this.run();
try {
sleep(1000);
} catch(InterruptedException ie) {
}
}
}
};
thread.start();
}
public void run() {
System.out.println("i = " + i);
i++;
}
public static void main(String[] args) throws Exception {
new A();
}
}
在下面這個例子中, thread 是一個匿名類對象,在它的界說中,它的 run 函數裡用到了內部類的 run 函數。這時候因為函數同名,直接挪用就不可了。這時候有兩種方法,一種就是把內部的 run 函數換一個名字,但這類方法關於一個開辟到半途的運用來講是弗成取的。那末便可以用這個例子中的方法用內部類的類名加上 this 援用來講明要挪用的是內部類的辦法 run。