【发布时间】:2018-05-30 18:26:36
【问题描述】:
有人能解释一下为什么剩下的代码可以编译,但第二个不行吗?我认为在这两种情况下我都试图访问相同的“数字”变量,但我可能错了......感谢您的解释。
【问题讨论】:
-
静态方法中没有
this -
对于右边的代码,方法是静态的。这意味着,它在所有实例之间共享的静态方法。作为静态/共享,它不能访问实例变量(this.number)
-
感谢您的快速回答。我认为静态方法中的 this 本身就是类(this.number == Number.number)
-
@RadekChromík 你搞错了。您可以使用(例如)
this.number在非静态上下文中访问静态字段,但不能在静态上下文中使用this,甚至引用静态字段。
标签: java static static-methods