gpt4 book ai didi

java - 从另一个类调用变量时是否可以避免使用 "static"?

转载 作者:行者123 更新时间:2023-12-05 06:58:21 24 4
gpt4 key购买 nike

从另一个类调用变量时是否可以避免使用“static”?非常感谢

这是我的代码。

class Hello {
public static String say = "Hello World"; //I using static
public void born() {
System.out.println(say);
}
}

public class SayHello extends Hello {
public static void main(String[] args) {
Hello myHello = new Hello();
myHello.born();
System.out.println(say);

}

输出:

Hello World
Hello World

如果我使用 public String say = "Hello World";

它输出Hello World null

有什么想法可以避免在从另一个类调用变量时使用“static”吗?非常感谢

最佳答案

如果删除static,它将无法编译。如果您想隐藏静态字段,可以将其标记为 private。因此它们只能被 Hello 类的所有实例 访问。修改或获取的正确方法是:

class Main extends Hello {
public static void main(String[] args) throws Exception {
Hello myHello = new Hello();
myHello.born();
// System.out.println(say); //doesn't allow access
// System.out.println(Hello.say); //doesn't allow access
System.out.println(myHello.getSay());
}

}

class Hello {
private static String say = "Hello World"; //private
public void born() {
System.out.println(say);
}

public String getSay() {
return say;
}
}

关于java - 从另一个类调用变量时是否可以避免使用 "static"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64642999/

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