静态方法只能访问静态成员?疑问
为什么静态方法只能访问静态成员,目前的回答主要是一下原因
类的静态方法随类的加载而加载,也就是说类创建了,静态方法就
存在在方法区了,可是可能这个时候还没有进行对象的初始化,既然
没有对象初始化,那对象的成员变量,成员方法自然就不存在,静态方
法就访问不了,。。。如果你实例化对象了,成员方法自然可以访问静
态的,因为它早存在了。。。
疑问如代码中所示:
class Person1
{
String name = "zhangsan";
static String cn = "china";
public static void speak()
{
System.out.println("name="+name);
}
}
class Person1Demo
{
public static void main(String[] args)
{
Person1 p1 = new Person1();
p1.speak();
}
}
以上建立了对象再用新建的对象调用静态方法来访问非静态
成员为什么程序会报错?(此时对象的非静态成员已经初始化了啊) |