gpt4 book ai didi

java - 不能减少 int 变量的值

转载 作者:行者123 更新时间:2023-11-30 06:13:24 26 4
gpt4 key购买 nike

我创建了 4 个类,一个 MainP 类,以及其他 Ex2Ex3Ex4(3和 4 扩展 2)。当我从一个对象调用 a 并减少另一个对象的 int 变量时,它只在第一次调用时执行。

这些是类:

例子2:

protected int par;

public int getPar() {
return par;
}

public void setPar(int par) {
this.par = par;
}

例子3:

private int par;

public Ex3(int par) {
this.par = par;
}

public void bar(Ex2 b) {
b.setPar(par - 10);
}

public int getPar() {
return par;
}

public void setPar(int par) {
this.par = par;
}

Ex4 与 Ex3 相同。

主要:

public class MainP {
public static void main(String[] args) {

Ex3 kaka = new Ex3(100);
Ex4 tana = new Ex4(100);

kaka.bar(tana);

System.out.println(tana.getPar());

kaka.bar(tana);

System.out.println(tana.getPar());
}
}

输出:

90
90

我不明白为什么 par 在第一次调用时减少并在第二次调用时停止。我想它以某种方式进行了校准,但我不明白为什么。

编辑:好吧,我明白我的愚蠢错误,但我有一个新的错误。我将方法更改为:

    public void bar(Ex2 b){
b.setPar(b.par-=10);
}

现在我的输出是:

-10

-20

为什么该方法将 b.par 更改为 -10?如果我这样做:tana.setPar(tana.par-=10);在 main 方法中,将变量更改为 public,它不会将 tana 的值更改为 -10,而是从 100 减少。

最佳答案

public void bar(Ex2 b){
b.setPar(par - 10);
}

在这里,您将 b 的值设置为 par - 10,其中 par 不是 b 的字段.因为它没有改变你 2 次将 b par 字段设置为相同的值 - 90。

关于java - 不能减少 int 变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886411/

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