有人可以解释一下为什么左边的代码可以编译,但第二个没有?我认为在这两种情况下我都试图访问相同的“数字”变量,但我可能错了...感谢您的解释。
答案 0 :(得分:0)
让我们首先了解什么是静态方法及其工作原理,然后我们可以很容易地得出这个问题的答案。
每当一个方法被声明为静态时,我们应该记住这些要点:
静态方法属于类而不是类的对象。 无需创建类的实例即可调用静态方法。 静态方法可以访问静态数据成员,并可以更改它的值。
现在,java中的这个关键字是一个引用当前对象的引用变量。此外,java中的super关键字是一个引用变量,用于引用直接父类对象。
因此,我们可以说这两个关键字都是引用某个对象的引用变量。换句话说,这两个关键字都属于该类的实例。
然而,静态成员属于类而不是类的实例。因此静态成员无法访问java中的this和super关键字。