刚自学JAVA没几天,刚才看到这个,有点发晕,说在  new A().func(new A());  语句中,一共用new A()产生了两个对象,在第一个对象的func方法中成功地访问了第2个对象的privite成员变量x,能帮忙解释下嘛,谢谢class A
{
 private int x=3;
 public static void main(String [] args)
 {
   new A().func(new A());
 }
 public void func(A a)
 {
     System.out.println(a.x);
 }

解决方案 »

  1.   

    class A
    {
    private int x=3;
    public static void main(String [] args)
    {
    第一个对象
    new A().func(new A()//第2个对象);
    }
    public void func(A a//这个a是第2个对象)
    {
    System.out.println(a.x//所以调用的是第2个对象的x成员);
    }
    }
      

  2.   

    new 了两次,产生2个对象,第二个作为参数传递调用自己的x属性
      

  3.   

    同一个类中不区分private安全是相对于类之间的,内部没有必要
      

  4.   


    回答正确 补充,new 两次