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