Как я могу получить это, чтобы напечатать слова "весь дом", если местоположение не было введено изначально. Я думаю, что это не работает, потому что, когда задача создана, она использует конструктор, который не имеет инструкций для определения местоположения. Есть ли способ получить местоположение, которое будет изменено с нуля на указанную мной строку?
Вот мой класс задач:
public class Task{
private final String choreName;
private final int maxCompletionInMinutes;
private final String difficulty;
private String location;
public Task(String choreName, int maxCompletionInMinutes, String difficulty){
this.choreName = choreName;
this.maxCompletionInMinutes = maxCompletionInMinutes;
this.difficulty = difficulty;
}
public Task(String choreName, int maxCompletionInMinutes, String difficulty, String location){
this(choreName, maxCompletionInMinutes, difficulty);
this.location = location;
}
public String getChoreName(){
return choreName;
}
public int getMaxCompletionInMinutes(){
return maxCompletionInMinutes;
}
public String getDifficulty(){
return difficulty;
}
public String getLocation(){
return location;
}
public void setLocation(String location){
if(location == null)
location = "Whole house";
this.location = location;
}
public void prettyPrint(){
System.out.printf("Complete the chore: %s (%s) in location: %s. This chore should take a maximum of %d minutes.%n", choreName, difficulty, location, maxCompletionInMinutes);
}
}
Вот мой класс драйверов:
public class Assignment5{
public static void main (String[] args){
Task task1 = new Task("Dishes", 40, "Hard", "Kitchen");
Task task2 = new Task("Dust", 45, "Hard");
Task task3 = new Task("Vacuum", 30, "Medium");
Task task4 = new Task("Make beds", 15, "Easy");
Task task5 = new Task("Water plants", 15, "Easy", "Living Room");
task1.prettyPrint();
task2.prettyPrint();
task3.prettyPrint();
task4.prettyPrint();
task5.prettyPrint();
}
}