第十章-内部类 《Thinking in java》学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章:内部类《Thinking in java》学习笔记容易的说,内部类就是将一个类的定义放到另一个类的定义内部。
内部类分为:成员内部类、局部内部类、静态内部类、匿名内部类。
a,成员内部类作为外部类的一个成员存在,与外部类的属性、办法并列。
优点: 1、内部类作为外部类的成员,可以拜访外部类的私有成员或属性。
(即使声明为private,但是对于处于其内部的内部类还是可见的。
) 2、可以内部类定义在外部类不行拜访的属性。
这样就在外部类中实现了比外部类private还要小的额拜访权限。
注重: 1、内部类是一个编译时的概念,一旦编译胜利,就会成为彻低不同的两个类。
对于一个名为Outer的外部类和其内部定义的名为Inner的内部类。
编译完成后浮现Outer.class 和 Outer$Inner.class 两个类 2、当
Outer是一个private类时,外部类对于其外部拜访是私有的,所以就无法建立外部类对象,进而也无法建立内部类对象。
b,局部内部类在办法中第一的内部类称为局部内部类。
与局部变量类似,在局部内部类前不加修饰符public和private,其范围为定义它的代码块注重:
1、在类外不行挺直生产局部内部类(保证局部内部类对外是不行见的)。
2、要想用法局部内部类时需要生产对象,对象调用办法,在办法中才干调用局部内部类。
3、通过内部类和接口达到一个强制的弱耦合,用局部内部类来实现接口,并在办法中返回接口类型,使局部内部类
不行见,屏蔽实现类的可见性。
c,静态内部类静态内部类可以用法public,protect,private修饰静态内部类中可以定义静态和非静态的成员注重:一个静态内部类不需要一个外部类的成员:只
是静态内部类和成员内部类的区分。
静态内部类的对象可以挺直生成
这事实上静态内部类成为了一个顶级类。
静态内部类不行用private 来举行定义。
当类与接口(或者是接口与接口)发生办法命名矛盾
的时候,此时必需用法内部类来实现。
用接口不能彻低地实现多继承,用接口协作内部类才干实现真正的多继承。
d,匿名内部类匿名内部类就是没出名字的内部类。
注重: 1、匿名内部类不能有构造函
第1页共3页。