內部類之成員內部類

成員內部類
可看作成員變量
可以用訪問權限關鍵字修飾
不能聲明靜態方法
成員內部類可以訪問外部類所有數據(靜態和非靜態)
實例化時需要先實例化外部類然後再引用.new 內部類();

package cn.geezer.innerclass;

public class MemberInnerClass {
    private int age = 1;
    private static boolean sex = false;
    private int getAge(){
        return age;
    }
    private static boolean getSex(){
        return sex;
    }
    public class InnerClass{
        public int innerAge = 18;
        public void print(){
            System.out.println(age);
            System.out.println(getAge());
            System.out.println(sex);
            System.out.println(getSex());
            System.out.println(innerAge);
        }

        //以下代碼直接報錯,因爲成員內部類無法創建靜態方法。
        /*
        不能創建靜態方法分析:
            因爲成員內部類可以訪問外部類的實例成員
            如果創建靜態方法,意思就是外部類還沒有實例化就能去訪問實例成員
            這樣或造成程序錯誤,所以成員內部類不能創建靜態方法。
         */
      //  public static  void say(){}


    }
}

package cn.geezer.innerclass;

public class MemberInnerClassTest {
    public static void main(String[] args) {
        MemberInnerClass mic = new MemberInnerClass();
        //實例化成員內部類
       MemberInnerClass.InnerClass ic =  mic.new InnerClass();
       ic.print();

    }
}

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