Java 如何更改不同类中字段的值?
以下是我练习中的一句话: 方法权重通过调用其方法从参数对象查询一些信息。也可以更改参数的状态。向类改革中添加将其参数的权重增加1的方法public void feedPerson 问题是,如果不使用构造函数或练习模板中没有给出的额外参数,我想不出如何做到这一点 主要的 人 感化院Java 如何更改不同类中字段的值?,java,Java,以下是我练习中的一句话: 方法权重通过调用其方法从参数对象查询一些信息。也可以更改参数的状态。向类改革中添加将其参数的权重增加1的方法public void feedPerson 问题是,如果不使用构造函数或练习模板中没有给出的额外参数,我想不出如何做到这一点 主要的 人 感化院 与在weightPerson方法中使用person.getWeight相同,您可以将getWeight与setWeight一起使用: 当然,如果需要,也可以将其折叠为一行: person.setWeight(perso
与在weightPerson方法中使用person.getWeight相同,您可以将getWeight与setWeight一起使用: 当然,如果需要,也可以将其折叠为一行:
person.setWeight(person.getWeight() + 1);
Java是按值传递的,在Java中不可能通过引用传递原语。因此,在感化班上,你应该得到这个人的体重,增加它,然后在Person对象中再次设置它
在感化院:
public void feed(Person person) {
person.setWeight(person.getWeight()+1);
}
您的解决方案会增加改造对象的重量,而不是人员对象的重量。不要在改造中声明字段重量
你必须打电话给塞特。feed方法中的可变权重是该类的局部变量。它与person的另一个变量无关。Java是按值传递的,而不是引用。变量永远不会链接在一起。Person有一个公共的setWeight方法。为什么不在getWeight的结果中添加一个参数来调用它呢?避免回答需要澄清的问题,请参阅。你能解释一下为什么这能解决问题,为什么OPs最初的方法不起作用吗?这将提高你答案的质量。
public class Reformatory {
private int weight;
public int weight(Person person) {
weight = person.getWeight();
return weight;
}
public void feed(Person person) {
weight++;
}
}
int newWeight = person.getWeight() + 1;
person.setWeight(newWeight);
person.setWeight(person.getWeight() + 1);
public void feed(Person person) {
person.setWeight(person.getWeight()+1);
}
public class Reformatory {
public int weight(Person person) {
return person.getWeight();
}
public void feed(Person person) {
person.setWeight(person.getWeight()+1);
}
}