静态方法能访问静态的成员变量,也能调用静态的方法。但是静态方法不能访问成员变量,也不能调用非静态的方法,那么每个程序都是通过public static void main(String args[])进入,那么每个方法前面不应该都有static修饰符吗?不理解,求解决,本人菜鸟!!
class person
{ int age;
String name;
void shut()
{
System.out.println("my name is"+name);
}
public static void main(String[] args)
{
person Tom=new person();
Tom.age=23;
Tom.name="Tom";
Tom.shut();
}
}
为什么在主函数中,能调用非静态方法(Tom.shut());
public static void main(String[] args)
{
shut();//这样的话是直接调用,是不可以的,下边的是通过创建了对象,由对象去调用这个方法了
person Tom=new person();
Tom.age=23;
Tom.name="Tom";
Tom.shut();
}
静态变量静态方法,在一个类中只有一份 ,在类加载时,jvm把它加载初始化到类的静态数据区域 ,而成员变量是只有类实例化的时候才进行初始化
所以 静态方法静态变量 ,当然不能访问成员变量啦 ,因为类加载时,还没有成员变量成员方法