本帖最后由 枪杆不如笔杆 于 2015-2-25 11:19 编辑
内部类 1. 内部类优点 a) 内部类对象可以访问创建它的对象的实现,包括私有数据; b) 内部类不为同一包的其他类所见,具有很好的封装性; c) 使用内部类可以很方便的编写事件驱动程序; d) 匿名内部类可以方便的定义运行时回调; e) 内部类可以方便的定义 2. 内部类,面向对象程序设计中,可以在一个类的内部定义另一个类,这种(nested classes),它有两种,即。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。 3. 实例化以后产生Outer.class和Outer$Inner.class字节码文件。 4. 实例化: a) 外部类名.内部类名 = new 外部类对象().new 内部类对象(); b) 如果内部类是静态的。 相当于一个外部类 外部类名.内部类名 = new 外部类对象.内部类(); c) 如果内部类是静态的,成员是静态的。 外部类名.内部类名.静态函数名 5. 如果内部类中定义了静态成员,该内部类也必须是静态的 6. 内部类可以存放在局部位置上。(也就是定义在外部类的成员函数里面,主函数也是函数哦)内部类在局部位置上只能访问局部中被final修饰的局部变量。 7. 匿名内部类:就是内部类的简写格式,内部类必须继承或者实现一个外部类或者接口。(因为内部类是用父类的名字创建对象)其实就是一个匿名子类对象 8. 使用匿名内部类时的原则 a) 不能有构造方法 b) 不能定义任何静态成员和静态方法 c) 不能是public,protected,private,static d) 只能创建一个实例 9. 为什么内部类能直接访问外部类中成员呢? a) 那是因为内部类持有了外部类的引用。 外部类名.this |