为什么成员变量s前面一定要加static,否则就报错
静态方法里只能调用静态资源,你得main方法是静态方法,只能调用静态成员变量
如果说类是模具,那对象就是模具压出来的月饼。静态的方法和属性就好比是模具的方法和属性。非静态的方法和属性,就好比是月饼的方法和属性。所有的这些都是自己调用自己的。月饼A自己的方法只能用月饼A自己的变量。同理,模具自己的方法,也只能调用模具自己的变量。
这个道理很简单,实例变量是每个对象实例都有的,而静态方法是一个类才有一个的。
看下面的代码
class Test
{
public int i;
static void foo()
{
println(i);
}
}
我们假设这代码是可以编译的
看如下调用
Test t1 = new Test();
t1.i = 1;
Test t2 = new Test();
t2.i = 2;
Test.foo(); //请问输出什么?输出1还是输出2?