黑马程序员--对内部类类的理解

来源:互联网 发布:ios云播软件 编辑:程序博客网 时间:2024/04/29 05:08

内部类
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

0 0
原创粉丝点击