我是新來的Java refenced並具有調用非靜態方法的問題的Java非靜態方法不能從靜態上下文
這是我的主要
public static void main(String[] args) {
Fish f1 = new Fish("Nemo");
Fish f2 = new Fish("Dory");
f2.setNumber(2);
Fish m = new Fish("Bruce");
m.setNumber(3);
Fish.printAllFish();
}
這是我的魚類
import java.util.ArrayList;
import java.util.List;
public class Fish {
protected String name;
protected int number;
protected List<Fish> fishList = new ArrayList<Fish>();
public Fish(String in){
name = in;
number = 1;
fishList.add(this);
}
public void printFish(){
System.out.println("the fish called" + name + " is number " + number);
}
public void setNumber(int Number){
this.number = number;
}
public int getNumber(){
return number;
}
public String getName(){
return name;
}
public int getFishNumOf(){
return fishList.size();
}
public void printAllFish(){
int size = this.getFishNumOf();
System.out.println("There are " + size + " fish:");
for (int i = 0; i < size; i++){
String a = getName();
int b = getNumber();
System.out.println("The Fish " + a + " is number " + b);
}
}
}
試圖調用printAllFish時,我得到的非靜態的錯誤,我知道我可能做一些新秀的錯誤,但是我纔剛剛開始學習編程之類的東西類,獲取,並將s設置直到迷惑我,任何幫助將非常感激!
非常感謝你MrAzzaman,你真的幫助我!我會執行你的循環,因爲它更好:) –
@Ser達沃斯 - 也試圖找出/學習在哪裏以及如何使用靜態關鍵字,並提供解決方案背後的每個原因 – gnanz