成员内部类可以看作是外部类的非静态成员的内部类。内部类和外部类的其他成员是同一级别的,也是外部类的一个成员。
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();
}
}