java中內部類的定義與訪問規則


java內部類總結

簡單來說,內部類就是在我們所熟悉的類中的里面再定義一個類

為什么需要內部類?

當我們描述事物時,事物之中還有事物,我們就用內部類描述事物

因為內部事物在使用外部事物的內容

我舉一個例子 人體有心臟,血液,肝,脾,肺-……那么心臟該如何定義?

我們應該定義心臟為內部類,因為它在使用外部類(人體)的血液,氧氣……

 

實例1:內部類的基本結構

 

class Out    /*外部類*/

{

    private int x=3;

    class In        /*內部類*/          

    {

        private int y

        public void show()

        {

            System.out.println(x);

        }        

    }

}


class Demo

{

    public static void main(String args[])

    {

        Out.In in=new Out().new In();  /*創建內部類對象的格式*/

        in.show();

    }

}

 


 

運行結果:3

從上面的例子不難看出,內部類其實嚴重破壞了良好的代碼結構,但為什么還要使用內部類呢?

因為內部類可以隨意使用外部類的成員變量(包括私有)而不用生成外部類的對象,這也是內部類的唯一優點

如同心臟可以直接訪問身體的血液,而不是通過醫生來抽血

 

程序編譯過后會產生兩個.class文件,分別是Out.class和Out$In.class

其中$代表了上面程序中Out.In中的那個 .

Out.In in = new Out().new In()可以用來生成內部類的對象,這種方法存在兩個小知識點需要注意

  1.開頭的Out是為了標明需要生成的內部類對象在哪個外部類當中

  2.必須先有外部類的對象才能生成內部類的對象,因為內部類的作用就是為了訪問外部類中的成員變量

 

其它的示例請看:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM