如题

解决方案 »

  1.   

    内部类可以对外界隐藏自己,而且又可以访问隐藏自己的外层类的数据。而静态内部类除了不能访问外层类的数据外,其它与一般内部类没有区别。//一般内部类
    class A
    {
        private int b = 8;
        class B
        {
            public void printB()
            {
                System.out.println(b);
            }
         }
    }//静态内部类
    class A
    {
        private int b = 8;
        static class B
        {
            public void printB()
            {
                System.out.println(b);//此处编译错误,不能访问外层的数据
            }
         }
    }
      

  2.   

    我认为有内部类的原因是因为对于外部类来说,
    1,内部类的功能是一个对立的小模块.
    2,内部类如果定义成public,其他的类用到这个内部类的时候,需要从外部类开始,强调了从属关系.
      内部类如果定义成proteced,表明这个内部类,在外部类的子类中的作用.
      内部类如果定义成private,表明这个内部类仅在这个类中使用.个人认为,就private这种比较实用,当我们的外部类要用到一个功能对立的小模块的时候,想为其写一个类,但是这个类的适用范围不广,仅对当前的外部类适用,这个时候,就写成内部类,对其他的类隐藏起来.至于为什么写成静态的,什么时候写成静态的,因该不难理解.