public class StaticDemo
{
static String m_name = "bing";
int m_age = 100; // non-static
public static void main(String[] argv)
{
System.out.println("name is " + m_name);
System.out.println("age is " + m_age);
}
}上述代码,eclipse编译器会报错"Cannot make a static reference to the non-static field m_age". why?
Here is my understanding:
首先,我们要清楚几个问题
(1)静态成员何时存在?
答曰:类存在了,静态成员就存在了
(2)非静态成员何时有意义,即何时能被调用?
答曰:没有对象的存在,你叫我如何有意义。先有对象,再来调我。
现在,应给明了了吧,定义完类,让一个已存在的东西(静态成员函数)调用一个还不存在的东西(非静态成员变量),Error !
本文通过一个具体的Java代码示例,详细解释了静态成员与非静态成员的区别及使用场景,并阐述了为什么不能从静态上下文中引用非静态成员。
8003

被折叠的 条评论
为什么被折叠?



