B,那么訪問方法如下:classB{ voidh(){  System。out。println("h()”);  g();  f">
從Java嵌套類中訪問外部類成員.doc

從Java嵌套類中訪問外部類成員.doc

ID:62034660

大?。?6.50 KB

頁數(shù):3頁

時間:2021-04-15

從Java嵌套類中訪問外部類成員.doc_第1頁
從Java嵌套類中訪問外部類成員.doc_第2頁
從Java嵌套類中訪問外部類成員.doc_第3頁
資源描述:

《從Java嵌套類中訪問外部類成員.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、從Java嵌套類中訪問外部類成員  在下面,我們看到對于B類來說他的嵌套層次是:AcessMethod-〉A(chǔ)—>B,那么訪問方法如下:classB{ voidh(){  System。out。println("h()”);  g();  f();}  AcessMethod和A來說對B,都是透明的,直接調(diào)用。嵌套類實例化的順序:有外到里!AcessMethod—〉A(chǔ)—〉B  調(diào)用代碼如下:AcessMethodam=newAcessMethod();AcessMethod.Aa=am.newA();Ac

2、essMethod。A.Bb=a.newB();b.h();  這里很有意思的一點,’。new’語法產(chǎn)生了正確的作用域?! ∫蓡枺合旅嫖覀儊砜匆幌略贐。h()中怎樣調(diào)用A1.g()方法?  我們是否可以在B中調(diào)用A1.g()方法,在B.h()方法中原則上可以這樣調(diào)用A1。g()但是A1沒有實例化,所以這樣是錯誤的,也就是在B中無法調(diào)用A1中的非靜態(tài)方法了?! 〖僭O(shè):如果A1.g()為static類型,那么在B中可以這樣調(diào)用A1種的方法:A1。this.g();  但是這是不可能的,因為在A1.g()不可

3、能定義為static類型,詳細看下面的問題1(問題1:在什么情況下可以定義static方法),這是一個缺點吧,但是可以使用嵌套類來解決了。/***從多層嵌套類中訪問外部類的成員.“。new“語法產(chǎn)生了正確的作用域*/publicclassAcessMethod{ privatevoidf(){  System。out。println(”f()");?。lassA1{  privatevoidg(){   System.out.println(”A1—g()”);  } } classA{  priv

4、atevoidg(){   System.out.println(”g()”);  }  classB{   voidh(){    System.out。println(”h()”);    g();    f();  ?。 。。ublicstaticvoidmain(String[]args){  AcessMethodam=newAcessMethod();  AcessMethod。Aa=am。newA();  AcessMethod。A.Bb=a。newB();  b。h(); }} 

5、 運行結(jié)果:h()g()f()  問題1:在什么情況下可以定義static方法?  只有在頂層類中定義,或者在靜態(tài)內(nèi)部類中定義,看下面的例子publicclassTest{ staticvoidt(){} classT2{  //!錯誤,Themethodacannotbedeclaredstatic;  //staticmethodscanonlybedeclaredinastaticortopleveltype  //staticvoida(){} } staticclassT3{  staticv

6、oida(){} }}

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。