外部类和内部类的访问
1成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。
2.外部类访问内部类
首先,要有内部类的对象
但是内部类是依附于外部类存在的
所以,先要创建外部类的对象。(方式如下:)
内部类之间的访问:
非静态内部类调用非静态内部类直接调用new类
非静态调用静态 直接调用new类
静态内部类调用静态内部类直接调用new类:
静态内部类调用非静态内部类外部类对象.new类
代码如下:
public class Outer {//外部类 其中内部类相当于外部类的方法 private String outVar="aa"; public void outMethod(){ System.out.println("my name is chinese"); } class Inner{//内部类 private String name; public void innerMethod(){ System.out.println(outVar);//访问外部变量 aa outMethod();//内部类访问外部类方法 my name is chinese new Inner3().innerMethod3();//非内部类访问静态内部类(new 访问) } } class Inner1{//内部类1 public void innerMethod1(){ new Inner().innerMethod();//非静态1访问非静态(new 访问) } } static class Inner2{//内部类2 public void innerMethod2(){ new Inner3().innerMethod3();//静态内部类2访问静态内部类3方法(new 访问) String inner2Var = new Inner3().inner2Var;//变量 } } static class Inner3{//静态内部类3 private String inner2Var="aa"; public void innerMethod3(){ Outer outer = new Outer(); String outVar = outer.outVar;//静态内部访问外部方变量 outer.outMethod();//静态内部访问外部方法 Inner inner = outer.new Inner();//静态内部3访问非静态内部(依赖外部对象new 访问) inner.innerMethod(); } } public static void main(String[] args) {//静态内部类3 Outer outer = new Outer();//外部类访问内部类 Inner inner = outer.new Inner(); inner.innerMethod(); } }