gpt4 book ai didi

java - 从另一个对象的方法更改对象变量

转载 作者:行者123 更新时间:2023-11-30 02:03:36 24 4
gpt4 key购买 nike

这可能是非常新手,但我已经尝试寻找答案一段时间了,但我找不到。

package playground.space;

public class Fourlegs {
String room;

public static void main(String[] args) {
Fourlegs program = new Fourlegs();

program.start();
}

public void start() {
Fourlegs cat = new Fourlegs();
cat.room = "office";
Fourlegs dog = new Fourlegs();
dog.room = "office";

//dog moves to the carpark, and the cat follows the dog
dog.move("carpark");
}

public void move(String i) {
this.room = i;

//cat cannot be resolved to a variable
cat.room = this.room; //the cat's room will be the same as the dog's room.
System.out.println("the cat is in the " + cat.room);
}
}

我收到错误:cat 无法解析为变量。(显然)。

如何通过其他方法操作“cat”?

最佳答案

您正在尝试访问其范围之外的变量,变量 cart 仅存在于方法 start 中。
您必须将要处理的对象传递给此方法:

public void move(String i, Fourlegs fourleg) {
fourleg.room = this.room
}

现在您可以在 Fourlegs 的任何实例上调用方法

编辑:新方法:

public class Fourlegs {
String room;

public void move(String i) {
this.room = i;
//kind of unnecesary:)
this.room = this.room;
}
}


public class FourlegStorage {
private List<Fourleg> fourlegs = new ArrayList<>();
public void start() {
Fourlegs cat = new Fourlegs();
fourlegs.add(cat);
cat.room = "office";
Fourlegs dog = new Fourlegs();
fourlegs.add(dog);
dog.room = "office";

//dog moves to the carpark, and the cat follows the dog
dog.move("carpark");
}

}

关于java - 从另一个对象的方法更改对象变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984732/

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