注册 登录
编程论坛 JAVA论坛

关于Java中的内部类的问题

反脑控2016 发布于 2016-09-27 17:17, 1026 次点击
public class Program1 {
    public static void main (String[] arks) {
        A a = new A ();
        B b = a.new B (); // 没有语法错误呀,这个内部类也是public的,莫名其妙!
        Program1 p = new Program1 ();
        C c = p.new C ();
        c.test ();
    }
    class C {
        public void test () {System.out.println ("good");}
    }
}
class A {
    public class B {
        public void method () {System.out.println ("Hello Inner Class ?");}
    }
}
为什么是错的?
2 回复
#2
反脑控20162016-09-27 17:22
内部类可以对同一个包中的其他类隐藏起来。
#3
反脑控20162016-10-04 22:02
public class Program1 {
     public static void main (String[] arks) {
         A a = new A ();
         A.B b = a.new B ();
         Program1 p = new Program1 ();
         C c = p.new C ();
         c.test ();
     }
     class C {
         public void test () {System.out.println ("good");}
     }
 }
 class A {
     public class B {
         public void method () {System.out.println ("Hello Inner Class ?");}
     }
 }
1