Java中内部类可以访问外部类的成员,请问这样算不算是破坏了封装性?

如题,谢谢!

内部类本质上就是外部类的一个成员,享有成员一样的共性。
就好比抽象类,也是类,具有类的所有共性。然后因为abstract所以具有了自己的特性。
所以内部类具有成员的一切共性,也具有类的一切共性,同时也具有自己的一些特性。

类的成员之间可以互相访问,所以这个内部类也可以访问外部类的成员。封装的目的就是为了代码的复用、增强安全性、实现模块化等,其实内部类嵌入到里面也是为了这个目的。不能说是破坏了这个封装原则吧。

内部类也有说内嵌类的,这种内嵌类在SDK中还是不少的。JDK中记得不太清楚了,ADK(安卓的SDK)中比如有LinearLayout.LayoutParames、ViewGroup.LayoutParames、SharedPreferences.Editor等都是内部类的体现。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-22
不算吧,你都把这个类写成内部类了,相当于进一步封装了。内部类就相当于外部类的一个成员函数,是可以访问外部类的成员。
第2个回答  2013-07-22
内部类当做是外部类的属性理解!没有破坏封装性!java实质就是对象调用方法!利用方法都能访问内部属性所以说是具备封装性!
第3个回答  2013-07-22
这要看你是怎么看待内部类和外部类的。

1,内部类和外部类,你看成是两个类,那是破坏了封装性的

2,把内部类看成外部类的一个成员,那就没有破坏封装性
第4个回答  2013-07-22
内部类是特殊的类,是解决多继承的问题的一种途径
相似回答