假设我有 3 个 java 类,A、B 和 C。A 类有一个名为 num 的 int 变量,该变量等于 3。我希望能够将 num 从 B 类更改为另一个数字(例如,45) ,然后从类 C 访问该变量,使其等于 45。我该怎么做?
//First Class
public class A
{
public int num;
public A() {
num = 3;
}
public void setNum(int newNum) {
num = newNum;
}
public int getNum() {
return num;
}
}
//Second Class
public class B
{
public static void main(String[] args) {
A a = new A();
C c = new C();
System.out.println(a.getNum());
a.setNum(45);
System.out.println(a.getNum());
c.printStuff();
}
}
//Third Class
public class C
{
public void printStuff() {
A a = new A();
System.out.println(a.getNum());
}
}
前两个 print 语句输出预期的 3 和 45,但 C 类中的 print 语句仍然输出 3,即使我将 B 类中的 num 值更改为 45。
最佳答案
之所以得不到你想要的结果,是因为你在类C
中创建了类A
的新实例,并且它有自己的值,即 3
。更改类 B
中定义的类 A
实例的值不会影响这个新实例。
请注意,您对 A
类调用了两次 new
方法,因此您有两个单独的实例。
您可以尝试此代码以获得您想要的结果:
//First Class
class A
{
public int num;
public A() {
num = 3;
}
public void setNum(int newNum) {
num = newNum;
}
public int getNum() {
return num;
}
}
//Second Class
public class B
{
public static void main(String[] args) {
A a = new A();
C c = new C();
System.out.println(a.getNum());
a.setNum(45);
System.out.println(a.getNum());
c.printStuff(a);
}
}
//Third Class
class C
{
public void printStuff(A a) {
//A a = new A();
System.out.println(a.getNum());
}
}
关于java - 如何从一个 java 类中更改另一个 java 类中的变量,然后从第三个 java 类访问更改后的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53901806/