一个类的private成员应该是本类才可以访问的.外部类为什么可以访问内部类的私有成员?

解决方案 »

  1.   

    可用通过内部类的方法来访问
           private int p;
                  int getP(){
                  return p;
           }
    就可以得到内部类的p
      

  2.   

    不通过方法,也不是内部类访问外部类,是这样: 为什么?
    class A {
    class B {
    private B() {
    System.out.println("default constructor");
    } private void method() {
    System.out.println("method");
    }
    } A() {
    A.B b = new B();
    b.method();
    }
    }
    public class Test {
    public static void main(String[] args) {
    new A();
    }
    }
      

  3.   

    A.B   b   =   new   B();
    调用的是内部类,所以b可以调用内部类B的private方法,new A()后直接用了B类的对象进行调用method方法,其实不存在外部类调用内部类的方法吧。
      

  4.   

    private私有类型,声明的方法和数据只能在本类中进行访问. 
    类的内部当然可以访问了,有什么疑问呢?
      

  5.   

    private私有类型,声明的方法和数据只能在本类中进行访问.   
    类的内部当然可以访问了,有什么疑问呢?A()   { 
    A.B   b   =   new   B(); 
    b.method(); 

    这段代码不是在类B的内部 是在类B的外部类A的内部
      

  6.   

    public class Test {
    public static  class TypeDescriptor {
    private TypeDescriptor() {
    System.out.println("aaaaaaaaaaaa");
    }
    private void fff(){
    System.out.println("bbbbbbbbbbbb");
    }
    }
    public static final TypeDescriptor BOOLEAN = new TypeDescriptor();
    public static void main(String[] args){
    BOOLEAN.fff();
    }
    }
    解释一下这个吧