java 静态方法访问的问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 23:44:03
class Point
{
int x;
int y;
int z;

void output()
{
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
public static void main(String[] args)
{
Point pt=new Point();
pt.x=10;
pt.y=100;
pt.z=1000;
pt.output();
}
}

static方法不能访问非static的方法!!
main()方法不就是static的么 为什么它可以访问非静态的变量int和方法output()??高手解释下 谢谢

static 方法不能访问非 static 方法
main方法当然是啦,不是都写的么 public static void main(String[] args)

main方法没有直接访问 这个类的x,y,z,而是通过创建了一个本类的对象。output()方法同样。直接访问是这样的,比如你在类里再定义一个方法 public static log(){System.out.println("Log");}
你可以直接在main方法里写 log();而不是 new 一个 Point pt;然后使用 pt.log();

你这里访问的是Point对象pt的方法和属性,当然可以

你试试着直接用output()看看就不行了

//这代码会出错
.....main............{
output();
}

如果你把output()改成static

上面代码则没错

变量一样

想问一下你知道这些东西加载的顺序吗?
还有你到底是什么程序出问题了?

static方法能访问非static方法,只要你构造了这个类就行了。Point pt=new Point(); 这里你不是构造了这个类吗?