gpt4 book ai didi

java - 从另一个类访问字段的值

转载 作者:行者123 更新时间:2023-12-02 11:05:08 25 4
gpt4 key购买 nike

我试图了解变量的范围以及如何使用从一个类初始化的变量并在另一个类中使用它们,但我的理解陷入了困境。

我有课Test1定义如下:

public class Test1 {

private int x;

public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}
}

我在我的 main 中调用这个类:

public class Main {

public static void main(String[] args) {
Test1 test1 = new Test1();
Test2 test2 = new Test2();

test1.setX(33);
int y = test1.getX();
System.out.print(y); // prints 33

test2.testing(); // method outputs 0 instead of showing the value of X

}
}

我还有一个类Test2 :

public class Test2 {
public static void testing() {
Test1 test1 = new Test1();

int val = test1.getX();
System.out.print(val);

}
}

如果我随后调用 main 中的方法,则 val 的值显示0而不是 33。我如何访问 getX() 内存中的值在另一个类(class)?

谢谢

最佳答案

将类视为创建新对象的“模具”。

在您的 main 方法中,您使用该模具创建一个新的 Test1 对象。在 testing 方法中,您使用同一模具创建一个新的 Test1 对象。但是,在您创建的第一个对象中,您将 x 设置为 33,但没有对另一个对象执行相同的操作。

把它想象成一个篮球。您有一个制作篮球的模具,并用它制作两个篮球。您将第一个篮球打气至 33% 充满空气,但不要向第二个篮球注入(inject)任何空气。仅仅因为使用相同的模具,并不意味着两个篮球都充气了 33% 的空气。

编辑:这是一个很好的视频,解释了范围,应该可以帮助您! https://www.youtube.com/watch?v=Y2iN3TO5qOQ

关于java - 从另一个类访问字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51030389/

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