gpt4 book ai didi

java - 静态方法不能访问类的实例成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:27:33 24 4
gpt4 key购买 nike

在 Liang 的第 9 版 Java 编程简介 中指出,“静态方法不能访问类的实例成员”(第 312 页)。我明白了为什么一个类的实例成员需要访问一个方法(可能是静态的),但是为什么一个方法需要访问一个实例成员?对我来说,“访问”意味着“通过点运算符访问”。换句话说:

 Class myClass = new Class();
myClass.someStaticMethod();

有道理,而:

 someNonStaticMethod.myClass

 someStaticMethod.myClass

没有。是否允许使用 someNonStaticMethod.myClass 语法?我不相信我见过这样的格式。如果不允许,为什么要提到静态方法不能访问类的实例成员呢?

请帮助解除我的困惑。

-DI

最佳答案

访问实例成员意味着访问实例的字段或属性,而不是实例本身,因为那样不会编译。点的字面意思并不像您所想的那样“访问”,我想这就是您感到困惑的根源。点用于调用特定对象的方法(参见 link )或访问对象的字段(如果字段是静态的,则为类)。

例如,假设类定义如下:

class MyClass {

private int x;

static void foo() {
... // foo cannot access member x
}
}

因此在方法 foo 中,您不能引用 x,因为它是 MyClass 的成员字段,绑定(bind)到 MyClass 的>实例

另见 Understanding Class Members了解静态成员和实例成员之间的区别。

关于java - 静态方法不能访问类的实例成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com