java中为什么静态方法里面必须打印静态变量,静态方法为什么无法打印普通变量?
那说明你还是没弄清楚静态和非静态的创建时机,变量有类变量和实例变量,也就是静态变量和非静态变量,类加载的时候就加载类变量也可以说是类自己的变量,而实例变量只有在实例化的时候才被创建,所以在调用静态方法的时候还没有创建实例变量,你怎么能调用实例变量呢
所以问题的关键不是能不能访问,而是你必须指定实例,有了实例就可以访问
class A
{
public int i;
static public void foo(A instence)
{
println(instence.i); //这样就可以了。
}
}
调用
A a =new A();
A.foo(a);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。