簡體   English   中英

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

[英]Java getter returning original value instead of value updated by setter

我正在做一個為照片制作濾鏡的項目,我們在此使用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; } else if (color1<0.0) { red=0.0; }永遠不會是true ,因為color1小於0所有情況都會在if語句if (color1 <= 1.0)情況下被捕獲。 因此,將永遠不會設置值0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM