gpt4 book ai didi

java - 从 Java 中的两个不同类设置和获取静态变量

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:00 24 4
gpt4 key购买 nike

假设我有 3 个类:ADataB

我从类 A 传递一个变量,该变量将传递的变量设置为类 Data 中的私有(private)变量。

然后在 B 类中,我想调用已更改的特定变量。

我也是

Data data = new Data();
data.getVariable();

然后它将返回 null,因为在类 Data 中我将变量初始化为空(例如:int v;),我认为类 B 正在初始化一个全新的类并将值重置为默认值,但我不知道如何解决这个问题。

我知道变量设置正确,因为在 A 类中,如果我执行 data.getVariable(),它将打印设置的变量。

A:

Data data = new Data();
int d = 1;
data.setVariable(d);

数据:

private static int b;

public void setVariable(int s)
{
b = s;
}

public int getVariable()
{
return b;
}

B 类:

Data data = new Data();
private int v;

v = data.getVariable();
System.out.println(v);

这将打印出 0 而不是实际值

最佳答案

当您在 A 类中实例化一个 Data 对象,并在 B 类中实例化另一个 Data 对象时,它们是 两个不同的实例 数据类。默认情况下,它们都将 d 实例化为 0。然后在类 A 中的实例上调用 setVariable 并将值 1 传递给它;但是 B 类中的实例仍然为 0。为了更改 B 类中实例的值,您需要对 B 类中的实例调用 setVariable

您正在寻找的似乎是静态成员。静态成员在同一类的所有实例中都是相同的。只需将 static 关键字放在您要使用它的方法或字段之前。静态成员和字段通常使用声明它们的类的名称进行访问(即 MyClass.doMethod())。例如:

类数据(更新):

private static int b;

public static void setVariable(int s)
{
b = s;
}

public static int getVariable()
{
return b;
}

A 类:

Data.setVariable(d);

B 类:

v = Data.getVariable();
System.out.println(v);

关于java - 从 Java 中的两个不同类设置和获取静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8250153/

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