《内部类学习分享》由会员分享,可在线阅读,更多相关《内部类学习分享(10页珍藏版)》请在金锄头文库上搜索。
1、内部类学习分享,内部类的分类,内部类成员内部类静态嵌套类方法内部类匿名内部类,成员内部类,成员内部类的实现成员内部类:形式如下 class Outer class Inner 注意要点1. 内部类是外部类的成员,必须先实例化外部类才可以实例化内部类2. 实例化内部类有两种方法:(1)通过非静态方法实例化内部类如:public Inner initialInner()return new Inner();(2)通过Inner in = 外部类对象.new Inner();实例化内部类(3)可以调用外部类的成员。外部类的this为:外部类名.this,内部类的this代表本身(4)修饰符有:fin
2、al、abstract、public、private、protected、strictfp,静态嵌套类,静态嵌套类的实现静态嵌套类:形式如下 class Outer static class Inner 注意要点1.从技术上讲,静态嵌套类不属于内部类。因为内部类与外部类共享一种特殊关系部类共享一种特殊关系,更确切地说是对实例的共享关系而静态嵌套类则没有上述关系。它只是位置在另一个类的内部,因此也被称为顶级嵌套类。 它可以像静态成员一样在没有外部类对象的时候被引用。2. 实例化嵌套类有二种方法:(1)通过非静态方法实例化内部类如:public static Inner initialInner(
3、)return new Inner();(2)通过Outer.Inner in =new Outer.Inner();实例化内部类(3)只能调用外部类的静态成员(4)修饰符有:final、abstract、public、private、protected、strictfp,方法内部类,方法内部类的实现成员内部类:形式如下 class Outer public void fun() class Inner 注意要点1.方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。2.方法内部类对象不能使用该内部类所在方法的非final局部变量。3.当方法的生命周期结束,但是方法的内部类
4、的生命周期还没有结束,此时内部类的实例就不能在使用方法内的局部变量了4.用于修饰方法内部类的只有final和abstract。,匿名内部类,匿名内部类的实现实现原理:多态1.继承式匿名内部类public class Outerclass Innerpublic void fun()System.out.println(“this is father”);public static void main(String args)Inner in = new Inner()public void fun() System.out.println(“this is son”);in.fun();,匿名
5、内部类,2.接口式匿名内部类public interface Usablepublic void fun();public class Outerpublic static void main(String args)Usable use = new Usable()/ 这里并不是实例化一个接口,而是实例化Out$Usable类,这个类实现了Usable接口public void fun() System.out.println(“this is complements”);use.fun();,匿名内部类,3.参数式匿名内部类public interface Usablepublic voi
6、d fun();public class Outerpublic static void main(String args)doSomething(new Usablepublic void fun()System.out.println(“this is unName Innerclass”););public static void doSomething(Usable use)use.fun();,总结,总 结,1.内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。几种内部类的共性:2.内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。3.内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的4.匿名内部类的原理是多态。 Inner in = new Inner()/ 前一个Inner是父类,后一个Inner其实是Outer$Inner,体现了继承和父类引用指向子对象private void fun()体现了重写,Click to edit company slogan .,源辰信息科技有限公司,Thank You !,