內部類--畢向東Java基礎教程學習筆記,畢向東學習筆記

來源:互聯網
上載者:User

內部類--畢向東Java基礎教程學習筆記,畢向東學習筆記

內部類的訪問規則

1. 內部類可以直接存取外部類的成員,包括私人。

之所以可以直接存取外部類的成員,是因為內部類中持有外部類的引用,格式:外部類名.this

2.外部類要訪問內部類,必須建立內部類對象。

 

訪問格式:

1.當內部類定義在外部類的成員位置上並且非私人時,可以在外部其他類中,直接建立內部類的對象。

格式:

外部類名.內部類名 變數名=外部類對象.內部類對象;

如:Outer.Inner in=new Outer().new Inner();

 

2.當內部類在成員位置上,就可以被成員修飾符所修飾。

比如private:將內部類在外部類中進行封裝。

static:內部類就具備了static的特性。

當內部類被static修飾後,只能訪問外部類的靜態成員,出現了訪問局限。

 

在外部其他類中,如何直接存取static內部類的靜態成員呢?

Outer.Inner.function();(Inner 是靜態,可以直接通過外部類名Outer來訪問;function也是靜態,可以直接通過其所在類的類名Inner訪問。)

注意:如果在內部類中定義了靜態成員,則該內部類必須也是靜態。

當外部類中的靜態方法中需要訪問內部類時,內部類必須也是static的。

總的來說就是那個比較常見的提示:“不能在靜態上下文中引用非靜態變數”。

 

3.因為內部類可以定義在外部類中任意的位置。

當內部類被定義在局部時(比如,在方法中):

1.不可以被成員修飾符修飾。

2.可以直接存取外部類中的成員,因為還持有外部類的引用。

但不可以訪問它所在的局部地區中的變數,除非該變數被final修飾。

 

什麼時候需要使用內部類?

當描述事物時,事物的內部還有事物,在內部的事物就用內部類來描述,因為內部事物需要使用外部事物的內容。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.