package pack1.InnerClass;
public class Outer {
private int age=18;
public void show(){
System.out.println("外部类.age: "+age);
}
//非静态内部类 不能有静态方法,静态属性,静态初始块
class Inner1 {
private int id = 1001;
private int age = 28;
public void test1() {
System.out.println("内部类.test()");
System.out.println("内部类属性,age " + this.age);
System.out.println("外部类属性,age " + Outer.this.age);
Outer.this.show();
}
}
}
package pack1.InnerClass;
public class testInnerClass1 {
public static void main(String[] args) {
Outer.Inner1 innera = new Outer().new Inner1();
innera.test1();
}
}
package pack1.InnerClass;
public class Outer2 {
private int a=10;
private static int b=20;
static class Inner2{
public void test(){
// System.out.println(a); 不能访问非static变量
System.out.println(b);
}
}
}
package pack1.InnerClass;
public class testStaticInnerClass {
public static void main(String[] args) {
Outer2.Inner2 inner2=new Outer2.Inner2();
inner2.test();
}
}
内部类
本文详细探讨了Java中静态和非静态内部类的区别,包括它们的成员访问权限,以及在`Outer`和`Inner1`类中的实例化和方法调用。还展示了如何在`Outer2`和`Inner2`静态内部类中处理静态变量的访问
摘要由CSDN通过智能技术生成