JAVA中为什么构造方法可以直接使用非静态变量而其他方法就需要创建个对象来调用才可以使用非静态变量呢?

JAVA中为什么构造方法可以直接使用非静态变量,
而其他方法就需要创建个对象来调用才可以使用非静态变量呢?

首先需要说明的是:你的问题是有错误的。
问题应该是:JAVA类中为什么 非静态成员方法 可以直接使用 非静态变量 而静态仿法(如:main方法)就需要创建个对象来调用才可以使用非静态变量呢?

答:因为静态方法只能使用静态变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-13
你的提问就是错误的。(而其他方法就需要创建个对象来调用才可以使用非静态变量-->是错误的)

public class Test {
String name;
public Test(String name){
this.name = name;
}
public static void main(String[] args) {
new Test("Tom").haha(); //通过对象调用实例方法

}
public void haha(){
name = "Mike";
System.out.println(name);
}
}
第2个回答  2010-07-13
我想你理解错了吧,JAVA中是静态方法不能直接使用非静态变量(这里所指全是成员变量)。只能通过实例化对像才可以使用,但可以直接调用静态变量。构造方法他不是静态方法,所以其可以直接调用非静态变量。