class Point
{
static int x,y,z;
Point(int a,int b,int c)
{
x=a;
y=b;
z=c;
}
int setPoint(int a)
{
x=a;
return x;
}

class C
{ public static void main(String args[])
{
Point p=new Point(2,2,2);
System.out.print(p.setPoint(2));
System.out.print(x);//这个地方为什么不能打印x
}
}

解决方案 »

  1.   

    这个x是在类C中 类C中又找不到变量x 所以报错了
      

  2.   

    x is static scope inside Point. To print x, you would need to do the followingSystem.out.print(Point.x);
      

  3.   

    x是Point的成员变量,不在C类中,要想在C类中打印x,就必须通过Point的引用或对象来访问,即
    System.out.print(p.x);
      

  4.   

    由于在C类中不存在变量x,所以编译System.out.println(x);的时候报错,如果想打印Point对象中的变量x,可以执行System.out.println(p.x);或者System.out.println(Point.x);
      

  5.   

    main方法是静态方法不能访问非静态的x