Java内部类
1.内部类访问规则: (1)成员内部类中不可以有静态属性;静态内部类可以有; (2)内部类可以直接访问外部类中的成员,包括私有; (3)外部类访问内部类,必须实例化内部类; //Outer outer=new Outer(); Outer.Inner inner=outer.new Inner(); 2.静态内部类: (1)静态内部类只能访问外部静态成员; (2)可以直接用"外部类名.内部类名.静态成员"调用静态成员; (3)可以不依赖外部类实例创建对象; ?//Outer.Inner inner=new Outer().Inner(); 3.局部内部类: ? 1.不可以被成员修饰符修饰; ?2.可以直接访问外部类中的成员; ?3.不可访问它所在的局部中的变量,只能访问被final修饰的局部变量; ?4.匿名内部类: 1.匿名内部类前提:必须继承一个类或者实现接口;两者取其一; 2.匿名内部类格式:?new 父类或者接口() {子类内容}; 3.匿名注意点: (1)不能有构造方法; (2)不能有静态成员; (3)所有抽象方法都要实现; 例://接口 interface ?Demo{ ????public abstract void show(); } //内部类演示 class Outer{ ????private int x=1; ????void run(){ ????????new Demo(){ ??//原理:?new inner().show(); ????????????public void show(){ ????????????????System.out.println("123"); ????????????} ????????}.show(); ????} } public class test{ ????public static void main(String[] args){ ????????new Outer().run(); ????} } ? ?例://接口 interface ?Demo{ ????public abstract void show(); } //内部类演示 class Outer{ ????private int x=1; ????class Inner implements Demo{ ????????public void show(){ ????????????System.out.println(x);//Outer.this.x; ????????} ????} ????void run(){ ????????new Inner().show(); ????} } public class test{ ????public static void main(String[] args){ ????????new Outer().run(); ????} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |