publicclassOut{privateint a =1;privatevoidn3(){}privatevoidn1(){//3.局部内部类不能添加访问修饰符,但可以用final修饰classInner{privateint a =10;privatevoidn2(){//1.局部内部类访问外部类的私有属性System.out.println(a);n3();//2.局部内部类访问外部类的私有方法//4:访问同名内部类属性直接访问System.out.println("内部类同名属性a:"+a);//3:访问同名外部类属性使用 外部类类名.this.属性System.out.println("外部类同名属性a:"+Out.this.a);}}}}
匿名内部类
// 基于接口的匿名内部类publicclassOut{publicstaticvoidmain(String[] args){CC cc =newCC();cc.M();}}class CC{publicvoidM(){//实现接口AAA a =newAAA(){@Overridepublicvoidcry(){System.out.println("11111");}};
a.cry();}}interface AAA{publicvoidcry();}
匿名内部类既是一个类的定义,同时也是一个对象
外部其他类不可以访问匿名内部类,因为匿名内部类是一个局部变量
类的五大成员:属性、方法、构造器、代码块、内部类四种内部类:1-局部内部类(放在方法或者代码块中)2-匿名内部类(放在方法或者代码块中)3-成员内部类4-静态内部类局部内部类public class Out { private int a = 1; private void n3(){} private void n1(){ //3.局部内部类不能添加访问修饰符,但可以用final修饰 class Inner {