Я пытаюсь получить конкретное значение из метода setter, используя цепочку метода java.например, если мы делаем obj.setId (1) .setValue (5).как мы можем получить значение = 5, используя obj.setId (1) .getValue ();
вот основной класс
public class MenuDish {
private String name;
private double price;
private String description;
private int category;
private int spiciness;
private boolean healthy;
public MenuDish(){ //constrcutor
}
public MenuDish setPrice(double price){
if(price < 0.0){
this.price = 0.0;
}
else{
this.price = price;
}
return this;
}
public double getPrice() {
return this.price;
}
public MenuDish setDay(int day){
return new MenuDish();//just do nothing
}
}
Подкласс
Класс AdjustableMenuDish
public class AdjustableMenuDish extends MenuDish {
private int day;
private double price;
public AdjustableMenuDish(){ //constructor
setName(null);
setPrice(0);
setDescription(null);
setCategory(0);
setHealthy(false);
setSpiciness(0);
}
@Override
public MenuDish setDay(int day){
this.day = day;
return this;
}
}
Внутри основного метода я пытаюсь сделать что-то подобное.
AdjustableMenuDish dish = new AdjustableMenuDish();
dish.setDay(0).setPrice(3.4);
dish.setDay(3).setPrice(7.4);
System.out.println(dish.setDay(0).getPrice());//--->output 7.4 but how to
get 3.4 instead of 7.4
В основном я пытаюсь получить конкретную цену за день.
Редактировать
Я хочу пройти тестовый пример Junit, который приведен ниже
@Test public void test_daily_prices() {
AdjustableMenuDish dish = new AdjustableMenuDish();
for (int i = MenuDish.MONDAY; i <= MenuDish.SUNDAY; i++) {
double p = 1.0+i;
double a = dish.setDay(i).setPrice(p).getPrice();
assertEquals(p, a, 0.0001);
}
for (int i = MenuDish.MONDAY; i <= MenuDish.SUNDAY; i++) {
double p = 1.0+i;
double a = dish.setDay(i).getPrice();
assertEquals(p, a, 0.0001);
}
}
Ожидается сбой 1,0, но было 7,0