Я делаю проект для создания фильтров для фотографии, где мы устанавливаем новые значения RGB с помощью методов getter и setter.Java getter возвращает исходное значение вместо значения, обновленного установщиком
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;
}
}
}
Каждый из геттеров и сеттеров является дубликатом getRed/setRed. Я проверил определения с помощью программы я не имею доступа к, но это выход я получил:
Неудачные испытания:
Сценарий: 3,1 - после вызова setRed (-1,0), getRed () 'ы возвращаемое значение должно быть 0,0
Цвет (1.0,1.0,1.0) .setRed (-1,0) - ОК
Цвет (1.0,1.0,1.0) .getRed() - ожидаемый 0.0 - 1.0 возвращается
Итак, сеттер работает так, как мне это нужно, но геттер возвращает исходную стоимость е. Это не единичный случай, каждый из моих получателей возвращает исходное значение (1.0) для своих соответствующих цветов, в то время как каждый сеттер успешно работает.
Создаете ли вы новый цвет каждый раз, когда вы запускаете геттер? – JCOC611
Нет нового цвета для каждого тестового прогона. Мы используем тот же экземпляр Color для восточного тестового запуска set/get – jobosno
Единая строка сеттера: 'this.red = color1 <0.0? 0.0: color1> 1.0? 1.0: color1; ' –