A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 扬帆起航fonnson 中级黑马   /  2016-7-3 15:02  /  500 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最喜欢老师讲课时的画图时间,轻松易懂有木有!
定义:就是在类的内部定义一个类
创建内部类对象:外部类名.内部类名 xx = 外部类对象.内部类对象

访问私有内部类的属性或方法需要在外部类定义一个方法来实现。
访问静态内部类的属性或方法:1、外部类名.内部类名 xx = 外部类名.内部类对象,通常把new提至=右边。2、外部类名.内部类名.属性(方法)。
内部类访问外部类属性或方法可以可用外部类名.this.属性或方法实现。

局部内部类(方法中的类)
在访问这个方法中的局部变量,变量需用final修饰。
因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,当方法弹栈,这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就没有了,如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用
但是jdk1.8取消了这个事情,所以我认为这是个bug

匿名内部类是局部内部类的一种,是一个继承一个类或实现一些接口的子类匿名对象。只针对一个方法时使用。
new 类名或接口名(){};

2 个回复

倒序浏览
抢个沙发,赞一个
回复 使用道具 举报
不错,很好的理解思路
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马