Какой класс вызывает ошибку "undefined for the type"? - PullRequest
0 голосов
/ 31 марта 2020

Eclipse сообщает мне «неопределено для типа Chore» для getName () в последней строке. Я не понимаю, где проблема. У меня также есть класс Chore, поэтому он пытается извлечь Name из класса Chore? Или что-то не так в моем классе People? (также добавлен класс Хоре)

        System.out.printf("%s's Chores: %n", person.getName());
        for(int i=0; i<person.getNumChores(); i++) {
        System.out.println(person.getChores()[i].getName()); //error here
        }

Люди класса:

public class People {
    private Chore chores[] = new Chore[48];
    private int numChores = 0;

    private final String name;
    private final int birthYear;
    private int age;

    public void addChore(Chore chore) {
        if(numChores == 48) {
            System.out.println("All chores have been assigned.");
        }
        else {
            chores[numChores++] = chore;    
        }
    }

    public People(String name, int birthYear, int age) {
        this.name = name;
        this.birthYear = birthYear;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getBirthYear() {
        return birthYear;
    }

    public int setAge(int birthYear) {
        int age = 2020 - birthYear;
            return age;
        }

    public int getAge(){
        return age;
    }

    public int getNumChores() {
        return numChores;
    }

    public Chore[] getChores() {
        return chores;
    }  
}

Вот класс Хоре:

public class Chore{

    private final String choreName; 
    private final String difficulty;
    private final String timesPerWeek;
    private String location;
    private String assigned;

    public Chore(String location, String choreName, String timesPerWeek, String difficulty){
       this.location = location;
       this.choreName = choreName;
       this.timesPerWeek = timesPerWeek;
       this.difficulty = difficulty;
       this.assigned = "N";
    }

    public Chore(String choreName, String timesPerWeek, String difficulty){
       this(choreName, timesPerWeek, difficulty, "Whole house");      
       this.assigned = "N";
    }

    public String getChoreName(){
        return choreName; 
    }    
    public String getDifficulty(){
        return difficulty;
    }

    public String getTimesPerWeek(){
        return timesPerWeek;
    }
    public String getLocation(){
        return location;
    }

    public String setAssigned(){
        String assigned = "Y";
        return assigned;
    }

    public String getAssigned(){
        return assigned;
    }
}

1 Ответ

1 голос
/ 31 марта 2020

У вас нет метода getName() внутри Chore.

Замените

System.out.println(person.getChores()[i].getName());

на

System.out.println(person.getChores()[i].getChoreName());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...