[英]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.