Java 如何更改不同类中字段的值?

Java 如何更改不同类中字段的值?,java,Java,以下是我练习中的一句话: 方法权重通过调用其方法从参数对象查询一些信息。也可以更改参数的状态。向类改革中添加将其参数的权重增加1的方法public void feedPerson 问题是,如果不使用构造函数或练习模板中没有给出的额外参数,我想不出如何做到这一点 主要的 人 感化院 与在weightPerson方法中使用person.getWeight相同,您可以将getWeight与setWeight一起使用: 当然,如果需要,也可以将其折叠为一行: person.setWeight(perso

以下是我练习中的一句话:

方法权重通过调用其方法从参数对象查询一些信息。也可以更改参数的状态。向类改革中添加将其参数的权重增加1的方法public void feedPerson

问题是,如果不使用构造函数或练习模板中没有给出的额外参数,我想不出如何做到这一点

主要的 人 感化院
与在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);
    }
}