gpt4 book ai didi

Java getter 返回原始值而不是 setter 更新的值

转载 作者:行者123 更新时间:2023-12-02 04:08:08 26 4
gpt4 key购买 nike

我正在做一个为照片制作滤镜的项目,我们使用 getter 和 setter 方法设置新的 RGB 值。

public class Color {

private double red;
private double green;
private double blue;

public Color() {
this.setRed(1.0);
this.setGreen(1.0);
this.setBlue(1.0);
}

public Color(double red, double green, double blue) {
this.setRed(red);
this.setGreen(green);
this.setBlue(blue);
}

... (code for other functions after those tests pass)

public double getRed(){
return red;
}

public void setRed(double color1){
if (color1 <= 1.0){
if (color1 >= 0.0){
red = color1;
}
}
else if (color1>1.0){
red=1.0;
}
else if (color1<0.0){
red=0.0;
}
}

}

每个 getter 和 setter 都是 getRed/setRed 的副本。我已经通过我无权访问的程序检查了定义,但这是我收到的输出:

失败的测试:

场景:3.1 - 调用 setRed(-1.0) 后,getRed() 的返回值应为 0.0

颜色(1.0,1.0,1.0).setRed(-1.0) - 确定

Color(1.0,1.0,1.0).getRed() - 预期 0.0 - 返回 1.0

因此,setter 正在按我需要的方式运行,但 getter 正在返回原始值。这不是一个孤立的案例,当每个 setter 成功运行时,我的每个 getter 都返回各自颜色的原始值 (1.0)。

最佳答案

您的最后条件else if (color1<0.0) { red=0.0; }永远不会true ,因为所有情况下 color1小于 0将被捕获​​在第一个 if 语句 if (color1 <= 1.0) 中。因此,值 0.0永远不会被设置。

关于Java getter 返回原始值而不是 setter 更新的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34053596/

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