025-局部内部类

声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看)
一、声明局部内部类
025-局部内部类
二、使用局部内部类
1、只能在声明它的方法或代码块中使用,而且是先声明后使用,除此之外的任何地方都不能使用该类。
2、但是它的对象可以通过外部方法的返回值返回使用,返回值类型只能是局部内部类的父类或父接口类型。
三、特点
1、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号,以及数字编号
2、只能在声明它的方法或代码块中使用,而且是先声明后使用,除此之外的任何地方都不能使用该类
3、局部内部类可以使用外部类的成员,包括私有的
4、局部内部类可以使用外部方法的局部变量,但是必须是final的,由局部内部类和局部变量的声明周期不同所致
5、局部内部类和局部变量地位类似,不能使用public、protected、缺省、private
6、局部内部类不能使用static修饰,因此也不能包含静态成员
四、匿名内部类
1、匿名内部类不能定义任何静态成员、方法和类,只能创建匿名内部类的一个实例。一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
2、格式:
new 父类构造器(实参列表)|实现接口() {
//匿名内部类的类体部分
}
3、匿名内部类的特点:匿名内部类必须继承父类或实现接口,匿名内部类只能有一个对象,匿名内部类对象只能使用多态形式引用。
五、示例
025-局部内部类
六、练习
025-局部内部类

猜你喜欢

转载自blog.51cto.com/12859164/2564208