java为什么要用内部类

 我来答
约定20125
2018-02-21 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2915万
展开全部

1.    内部类能访问外围类的所有成员,包括私有成员。

当生成一个内部类对象时,此对象与制造它的外围类对象之间就有了一种联系,所以它能访问其外围类对象的所有成员,而不需要任何特殊的条件。如下面代码所示:

[java] view plain copy 

  • class OutterClass {  

  • private int i = 1;  

  • class InnerClass {  

  • public void displayPrivate() {  

  • System.out.println(i);  

  • }  

  • }  

  • }  

  • public class MainClass{  

  • public static void main(String[] args) {  

  • OutterClass outter =  new OutterClass();  

  • OutterClass.InnerClass inner = outter.new InnerClass();  

  • inner.displayPrivate();  

  • }  

  • }  

  • 由上面的代码可以看出,内部类能够访问外部类的私有成员变量。在这段代码中,还需要注意的是

    ①生成内部类对象,必须要先有外围类对象,具体的做法请见代码;

    ②内部类能访问外围类的私有成员这一点,C++中的嵌套类是没有这个特性的。

    2. 内部类与static

    ①内部类不能含有static方法;

    ②内部类不能含有static数据成员,除非是static final;

    ③内部类可以继承含有static成员的类。


    3. 匿名内部类

    匿名内部类,看起来非常奇怪。因为它太简洁了,但这也带来一个好处,用匿名内部类写出来的代码通常比较简洁啦!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式