內部類對象的創建

與方法中是否能夠使用靜態變量相同,非靜態內部類不能聲明靜態成員變量,靜態內部類可以聲明靜態成員變量。

非靜態內部類對象的創建:

先創建外部類對象,之後外部類對象調用new關鍵字創建內部類對象。

    Outter outter=new Outter();

    Outter.Inner inner=outter.new Inner();

靜態內部類對象的創建:外部類.內部類直接創建。

    Outter.Inner inner=new Outter.Inner();

public class Outter {

    public static class Inner1{
        public static String text="靜態成員變量";
    }

    public class Inner2{

        public String text="非靜態變量";
    }
    public class Inner3{
        //非靜態內部類不能聲明靜態成員變量
        //public static String text="靜態成員變量";
    }

}

內部類對象的創建:

public class Test {
    public static void main(String[] args) {

        //創建靜態內部類對象,語法 外部類.內部類 引用名=new 外部類.內部類()
        Outter.Inner1 inner1=new Outter.Inner1();
        System.out.println(inner1.text);

        //創建非靜態內部類對象
        //如果繼續採用靜態內部類語法創建,則出現is not an enclosing class
       // Outter.Inner2 inner2=new Outter.Inner2();

        Outter outter=new Outter();
        Outter.Inner2 inner2=outter.new Inner2();
        System.out.println(inner2.text);

        //與方法類似,非靜態內部類不能調用靜態資源
        Outter.Inner3 inner3=outter.new Inner3();

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章