簡體   English   中英

我的代碼無法正常工作嗎? IF陳述多個類別

[英]My code doesn't work right? IF-statement multiple classes

我對Java比較陌生,作為一個新手,我很難理解代碼的工作或執行方式。 大多數情況下,我在一兩分鍾之內就能找到答案,有時在一兩個小時之內就能找到答案。 但是,我已經被困了兩天了,恐怕我不能獨自解決這個問題。

我當前正在進行的編程工作已接近完成,只保留了一點行之有效的方法:setMaxSize方法似乎無法正常工作。 我試圖編輯方法addPlayer來制作有關團隊的最大大小和當前大小的IF語句。 但是,該方法不會將球員添加到列表中,無論當前球隊列表是否為空。 我做錯了什么? 我的錯在哪里 我如何在addPlayer中獲得IF聲明以在空白列表中接受新玩家,同時檢查團隊中的最大玩家數?

我很高興收到我的任何反饋,如果這是一個討厭的問題,我深表歉意,但是我真的在這里忍耐不住了。 另外,這不是家庭作業:這是我從大學網站在線找到的編程練習,但是我很難完成。

我包括兩個類文件和主字段。

import java.util.ArrayList;

public class Team {
private String name;
private ArrayList<Player> list = new ArrayList<Player>();
private int maxSize;

public Team (String name){
    this.name = name;
}

public String getName(){
    return this.name;
}

public void addPlayer(Player player){
    if (list.size() <= this.maxSize){
        this.list.add(new Player(player.getName(), player.goals()));
    }
}

public void printPlayers(){
    for (Player player : list){
        System.out.println(player.toString());
    }
}

public void setMaxSize(int maxSize){
    this.maxSize = maxSize;
}

public int size(){
    return this.list.size();
}

public int goals(){
    int goalSum = 0;
    for (Player player : list){
        goalSum+=player.goals();
    }
    return goalSum;
}
}

public class Main {
public static void main(String[] args) {
    Team barcelona = new Team("FC Barcelona");

    Player brian = new Player("Brian");
    Player pekka = new Player("Pekka", 39);
    barcelona.addPlayer(brian);
    barcelona.addPlayer(pekka);
    barcelona.addPlayer(new Player("Mikael", 1));

    System.out.println("Total goals: " + barcelona.goals());
}
}

public class Player {
private String name;
private int goal;

public Player(String name){
    this.name = name;
}

public Player(String name, int goal){
    this.name = name;
    this.goal = goal;
}

public String getName(){
    return this.name;
}

public int goals(){
    return this.goal;
}

public String toString(){
    return "Player: " + this.name + ", goals " + this.goal;
}
}

您需要先致電setMaxSize然后才能將玩家添加到團隊中。

如前所述,您永遠不會調用setMaxSize,因此maxSize最初為0。此外,我建議為每個類中的所有數據字段設置setter和getter,並將每個字段設為私有。

例如,您有一個maxSize的設置器,但沒有getter器。 一個做而不是另一個沒什么意義,對嗎? 您可以創建更好的封裝,並以這種方式更輕松地允許代碼的將來更改,並且對於將來的項目,這也是更好的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM