成員內部類可以看作是外部類的非靜態成員的內部類。內部類和外部類的其他成員是同一級別的,也是外部類的一個成員。
package JAVA_Project_01_05;
class OuterClass {
String outer = "outer class";
private int number = 1;
private static int count = 10;
public OuterClass() {
}
public OuterClass(int number, int count) {
this.number = number;
this.count = count;
System.out.println("傳入的數分別爲:" + this.number + "與" + this.count);
}
private void outer_1() {
System.out.println("調用外部類的非靜態方法");
InnerClass inner = this.new InnerClass();
}
private static void outer_2() {
System.out.println("調用外部類的靜態方法");
}
class InnerClass {
String outer = "innerclass";
public InnerClass() {
System.out.println("成員內部類的構造方法");
}
protected void communicate() {
System.out.println("外部類的字符串:" + OuterClass.this.outer);
System.out.println("內部類的字符串:" + this.outer);
}
protected void inner_1() {
System.out.println("調用外部類的私有方法");
outer_1();
outer_2();
}
}
}
public class TextMemberInnerClass {
public static void main(String[] args) {
OuterClass outer = new OuterClass(10,20);
OuterClass.InnerClass inner = outer.new InnerClass();
System.out.println("OuterClass=" + outer.outer);
System.out.println("InnerClass=" + inner.outer);
inner.communicate();
inner.inner_1();
}
}