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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王章亚 中级黑马   /  2012-5-23 08:53  /  1434 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

怎么理解java内部类和外部类,它们都有什么作用?怎么去理解它

4 个回复

倒序浏览
类是属性和方法的封装体。放在一个类的内部的类我们就叫内部类。
内部类的作用:
1.内部类可以很好的实现隐藏;一般的非内部类,是不允许有 private 与protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.因为java只支持单继承,内部类和接口一起使用可实现似于多重继承的功能
4.可以避免修改接口而实现同一个类中两种同名方法的调用。

回复 使用道具 举报
类其实就是对现实生活的描述,描述事物时,事物的内部还有事物,该事物用内部类来描述。
比如我们学到的Map.Entry对象  这个Entry就是Map中的内部接口。
建议楼主看看毕老师举的class Body例子
回复 使用道具 举报
人体内有心脏,
心脏可以定义为人体的内部类,这种联系可以想象吧
回复 使用道具 举报
首先,内部类就是在一个(外部)类中再定义一个类,但是,有一点,所有使用内部类的地方都可以不用内部类同样解决问题,只是为了使程序更加简介,便于命名规范和划分层次结构,可以在类中再次定义类,即引入内部类进行对方法的封装。

其次,内部类可以理解是作为外部类的一个成员,它依附于外部类而存在的。内部类可以为静态(内部类可以有静态属性,前提是必须是静态内部类)。可以用protect和private修饰,而外部类只能用public和default修饰。

内部类又分为:成员内部类,局部内部类,静态内部类,匿名内部类。

成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列。
局部内部类:在方法中定义的内部类称为局部内部类。
静态内部类:静态内部类定义在类中 ,在任何方法之外,用 static 修饰。 静态内部类只能访问外部类的静态成员。
匿名内部类:匿名内部类就有点特殊了,通过匿名类实现。另外你们内部类是唯一一种没无构造方法的类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马