我是一名計算機專業的學生處理作業以下指示的數組:使用靜態類作爲對象
「發展,將讀取輸入的文本字符串並計算A的數量的應用程序, B的,C的等......你將創建一個Letter類,它將保存出現的字母和數量,以及一個LetterList類,它可以是靜態的Letter對象數組。
我無法準確計算出如何使用我的靜態類包含字母對象的數組。我有我的班寫如下:
public class Letter {
private char letter;
private int count;
//constructor and getters and setters omitted
public void increment() {
count++;
}
static class LetterList {
private static final int MAX = 26;
private static Letter[] list;
private static int size = 0; //to prevent null pointer exception
public LetterList() {
list = new Letter[MAX];
}
public static int length() {
return size;
}
public static void addLetter(Letter letter) {
boolean added = false;
for (int i = 0; i < MAX && !added; i++) {
if (list[i] != null) {
//if the letter exists in the array increment the count
if (letter.getLetter() == list[i].getLetter()) {
list[i].increment();
added = true;
}
} else {
//if it doesn't exist add it
list[i] = letter;
added = true;
size++;
}
}
}
public static Letter getElement(int idx) {
return list[idx];
}
public static void clearList() {
size = 0;
}
}
}
因爲這個類是靜態的,是構造函數所需?當我想在我的LetterList類的Letter []數組中添加元素時,什麼是正確的方法?讓我的LetterList類本身更好嗎?我感謝任何幫助和提前感謝。
我不相信你會想要在這種情況下的構造函數...只是在頂部做私人靜態信[]列表=新信[MAX];'。因此它是真正的靜態的,因爲爲了讓你的代碼現在能夠正常工作,你需要調用構造函數。如果你想給你的'Letter []'添加一個字母,只需要做...'LetterList.addLetter(....);'。在我看來,你應該把這兩門課分開。 – 3kings
靜態類不需要構造函數。我認爲'Map'將比數組更好地滿足您的需求。 –
c0der
在這個級別上,我會發現遵循教授的建議是明智的,在這種情況下,一個靜態的'Letter'對象(對於生產代碼我也會做其他事情,但現在不用)。 –