我是新来的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