所以说我有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,但是即使我在B类中将num的值更改为45,C类中的print语句仍输出3。
答案 0 :(得分:2)
无法获得所需结果的原因是,您在类<input type="submit">
中创建了类A
的新实例,并且它有自己的值{{1 }}。更改在类C
中定义的类3
的实例的值将不会影响此新实例。
请注意,您在类A
上调用了B
方法两次,因此有两个单独的实例。
您可以尝试以下代码以获得所需的结果:
new
答案 1 :(得分:0)
之所以会这样,是因为您在 import set from 'lodash/set'
let path = 'foo-num';
const paths = path.split('-').join('.')
const value = 'some value';
set(object, paths, value)
C
中再次创建了class
的新实例。因此该值为A
。您可以更改构造函数并这样调用它,
3
通过这种方式,在创建实例时,您可以根据需要从任意public A(int value) {
num = value;
}
new Post(45);
中为num分配一个值。