求哪位大虾给解释一下下面这个小程序,感激涕零
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.   

    private int x = 3; 定义x是类A的私有成员变量
    public void func(A a) 这是类A的成员方法,此方法的入参是一个A的对象public static void main(String[] args) 
    {
    new A().func(new A());
    }
    这是实例化一个A对象,然后调用这个对象的func方法,同时又实例化一个A对象作为入参传给方法func
    因为静态方法不能直接访问成员方法,只能先实例化一个A对象
      

  2.   

    class A 
    {
    private int x = 3; public static void main(String[] args) {
    //前面的new A()是实例化A类,这样才能调用其方法func();
    //func()中的参数必须是个A类的实例,所以又NEW A()了一下
    new A().func(new A());
    } public void func(A a) {
    //调用类A的一个实例a,输出a的属性x的值
    System.out.println(a.x);
    }
    }
      

  3.   

    为什么func()有两个参数,main{}中调用时只给了一个参数。