日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

談?wù)?Java 中 this 的使用

 執(zhí)著男孩 2006-09-13



1. this是指當(dāng)前對(duì)象自己。
當(dāng)在一個(gè)類中要明確指出使用對(duì)象自己的的變量或函數(shù)時(shí)就應(yīng)該加上this引用。如下面這個(gè)例子中:

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!");
}
}

運(yùn)行結(jié)果:

s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!

在這個(gè)例子中,構(gòu)造函數(shù)A中,參數(shù)s與類A的變量s同名,這時(shí)如果直接對(duì)s進(jìn)行操作則是對(duì)參數(shù)s進(jìn)行操作。若要對(duì)類A的變量s進(jìn)行操作就應(yīng)該用this進(jìn)行引用。運(yùn)行結(jié)果的第一行就是直接對(duì)參數(shù)s進(jìn)行打印結(jié)果;后面兩行分別是對(duì)對(duì)象A的變量s進(jìn)行操作前后的打印結(jié)果。

2. 把this作為參數(shù)傳遞
當(dāng)你要把自己作為參數(shù)傳遞給別的對(duì)象時(shí),也可以用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!");
}
}

運(yùn)行結(jié)果:
Hello from A!
Hello from B!

在這個(gè)例子中,對(duì)象A的構(gòu)造函數(shù)中,用new B(this)把對(duì)象A自己作為參數(shù)傳遞給了對(duì)象B的構(gòu)造函數(shù)。

3. 注意匿名類和內(nèi)部類中的中的this。
有時(shí)候,我們會(huì)用到一些內(nèi)部類和匿名類。當(dāng)在匿名類中用this時(shí),這個(gè)this則指的是匿名類或內(nèi)部類本身。這時(shí)如果我們要使用外部類的方法和變量的話,則應(yīng)該加上外部類的類名。如下面這個(gè)例子:

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();
}

}

在上面這個(gè)例子中, thread 是一個(gè)匿名類對(duì)象,在它的定義中,它的 run 函數(shù)里用到了外部類的 run 函數(shù)。這時(shí)由于函數(shù)同名,直接調(diào)用就不行了。這時(shí)有兩種辦法,一種就是把外部的 run 函數(shù)換一個(gè)名字,但這種辦法對(duì)于一個(gè)開發(fā)到中途的應(yīng)用來(lái)說(shuō)是不可取的。那么就可以用這個(gè)例子中的辦法用外部類的類名加上 this 引用來(lái)說(shuō)明要調(diào)用的是外部類的方法 run。
 



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多