Loke Brian Ответов: 3

Требования к дизайну класса


Вам нужно создать классы для игрока и команды с соответствующими членами.

Включите две функции в классную команду:
Функция добавления нового игрока в команду
Функция для вычисления и возврата общего счета команды путем добавления индивидуального счета ее игроков.

Команда имеет название команды, страну команды, максимум 5 игроков команды. Игрок имеет данные об имени игрока и индивидуальном счете игрока. Функция поиска считывает название команды и отображает всю информацию о команде, включая игроков команды и их результаты. Функция leader board показывает все команды (название и общий балл) от самого высокого до самого низкого балла.

Теперь у меня есть класс создания команды и игрока. но мой add player имеет ошибку недопустимого объявления метода; требуется тип возврата и не может найти символ метода add(player)

кто - нибудь может помочь мне починить его

Что я уже пробовал:

public class Player {
    private String name;
    private double score;
    private Player player;
    
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public double getScore(){
        return score;
    }
    public void setscore(double score){
       this.score=score;
    }
    public Player(String name, double score){
        this.name=name;
        this.score=score;
    }
    public addPlayer(String name, double score){
        player.add(player);
    }
    @Override
    public String toString(){
    return "\nName: "+name+"\nScore:"+score;
    }
}



public class Team {
    private String teamname;
    private String countryname;
    private Player player;
    private int teamscore;

    public String getteamName(){
    return teamname;
    }
    public void setteamName(String teamname){
    this.teamname = teamname;
    }
    public String getCountryname(){
    return countryname;
    }
    public void setCountry(String countryname){
    this.countryname = countryname;
    }
    public Player getPlayer(){
    return player;
    }
    public void setPlayer(Player player){
    this.player=player;
    }
    public void addPlayer(Player player){
    player.add(player);
    }
    public void teamScore(int score){
    teamscore+=score;
    }

    @Override
    public String toString() {
    return "Team{" + "teamname=" + teamname + ", countryname=" + countryname + ", player=" + player + ", teamscore=" + teamscore + '}';
    }
}

Maciej Los

Взгляните на командный класс. У вас есть только один игрок, но вы должны иметь возможность добавить более одного игрока (максимум 5). Я бы предложил использовать список ArrayList:

private ArrayList<Player) players = new ArrayList<>();
if(players.size<5)
  players.add(player);

3 Ответов

Рейтинг:
7

OriginalGriff

Посмотрите на свой код:

public addPlayer(String name, double score){
        player.add(player);
Это синтаксис конструктора класса, а не метода внутри класса. Все методы (кроме конструкторов) должны содержать возвращаемый тип:
public void addPlayer(String name, double score){
        player.add(player);


Рейтинг:
2

Richard MacCutchan

Конструктор класса должен принимать имя и страну, а не использовать сеттер для каждого свойства. Создание команды без названия довольно бессмысленно. Также классу mambers не нужен префикс "team", так как вы уже знаете, что они являются командными свойствами. Так что ваш класс должен быть примерно таким:

public class Team {
    private String name;
    private String country;
    private int score;
    private Player player; // this should be an array or list

    public Team(String name, String country) { // the constructor needs the name and country
        this.name = name;
        this.country = country;
        score = 0;
    }

    public String toString(){ // a better mechanism to get the team name
        return name; // or possibly name + country in some form
    }
}


Maciej Los

5ed!

Richard MacCutchan

Спасибо Мацей.

Рейтинг:
0

Maciej Los

Как я уже упоминал в комментарии к этому вопросу...

Взгляните на определение понятия Team класс. У вас есть только один игрок, но вы должны иметь возможность добавить более одного игрока (максимум 5). Я бы предложил использовать список ArrayList[^]:

private ArrayList<Player> players = new ArrayList<>();
//then - in "add" method:
if(players.size<5)
  players.add(player);


Пожалуйста, прочтите также ответ Ричарда.


Richard MacCutchan

+5, но в объявлении ArrayList есть опечатка.

Maciej Los

Эта опечатка была непреднамеренной ;)
[РЕДАКТИРОВАТЬ]
Еще одна опечатка, ага....