黑马程序员技术交流社区

标题: 关于内部类的"身份"的问题 [打印本页]

作者: 张宏祚    时间: 2013-10-12 08:27
标题: 关于内部类的"身份"的问题
本帖最后由 张宏祚 于 2013-10-12 18:21 编辑

内部类相对于外部类,它的身份是什么呢,内部类是否作为一个对象,属于外部类的一个属性呢?有理解这块内容的朋友,能不能详细的总结下,谢谢啦!:)
作者: 卜弦    时间: 2013-10-12 09:10
1、由于一般情况类与类之间访问数据需要在类中建立对方的对象(执行new操作),但是内部类可以直接访问外部类中的成员,而外部类访问内部类需要new内部类的对象。
所以当内部类定义在其外部类的成员位置上,而且非私有,可以在外部的其他类中直接建立内部类对象。
                      格式外部类名.内部类名 变量名 = 外部类对象.内部类对象;
                                        Outer.Inner in = new Outer().new Inner();
  注意:内部类可以被私有修饰。外部类不可以。

2,当内部类在成员位置上,就可以被成员修饰符所修饰。比如,private:将内部类在外部类中进行封装。 static:内部类就具备static的特性。
但是当内部类被static修饰后,它就只能直接访问外部类中的static成员,因此出现了访问局限。

3、内部类定义在局部时
a,不可以被成员修饰符修饰
b,可以直接访问外部类中的成员,以及访问被final修饰的局部变量。

这些毕老师的视频里都讲过的!

作者: To    时间: 2013-10-12 11:23
楼主你好,如果问题已解决请将帖子状态改为提问结束,如果未解决请继续提问,谢谢合作。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2