Java 显示子类的内容

Java 显示子类的内容,java,arrays,constructor,Java,Arrays,Constructor,我是Java新手,非常喜欢这个挑战。目前我正在尝试建立一个包含3个职业(战士、法师、胭脂)的游戏,玩家可以从中选择。因此,我为基础(生命、法力、耐力)和战士、法师和胭脂的子类创建了一个构造函数 我想打印玩家的选择,但不幸的是它不起作用。也许有人能给我指路 这是超级班。不要被德语符号弄糊涂了D public class Klassen { String Klasse; int Vitalitat; //Health int Mana; int Ausdauer; //Stamina Kla

我是Java新手,非常喜欢这个挑战。目前我正在尝试建立一个包含3个职业(战士、法师、胭脂)的游戏,玩家可以从中选择。因此,我为基础(生命、法力、耐力)和战士、法师和胭脂的子类创建了一个构造函数

我想打印玩家的选择,但不幸的是它不起作用。也许有人能给我指路

这是超级班。不要被德语符号弄糊涂了D

public class Klassen {

String Klasse;  
int Vitalitat; //Health
int Mana;
int Ausdauer; //Stamina

Klassen(String k, int v, int m, int a) {
    Klasse = k;
    Vitalitat = v;
    Mana = m;
    Ausdauer = a;
}
String getKlasse() {return Klasse;} //choice of classes
int getVit() {return Vitalitat;}
int getMana() {return Mana;}
int getAusdauer() {return Ausdauer;}

void setVit(int v) {Vitalitat =v;}
void setMana(int m) {Mana = m;}
void setAusdauer(int a) {Ausdauer = a;}
void setKlase(String k) {Klasse = k;}
void showBasic() {
    System.out.println("Vitalitaet: " + Vitalitat);
    System.out.println("Mana: " + Mana);
    System.out.println("Ausdauer " + Ausdauer);
}
下面是一个子类的示例:

    public class Krieger extends Klassen {
    int Starke;

    Krieger(int v, int m, int a, int s) {

        super("Krieger", v, m, a);

        Starke = s;
    }

    int getStarke() {return Starke;}
    void setStarke(int s) {Starke = s;}

    void showStarke() {
        System.out.println("Starke: " + Starke);
    }
}
下一步是创建一个数组以容纳所有三个选项:

Klassen[] fillKlassen() {            //filling the array
        Klassen[] Auswahl = new Klassen[3];

            Auswahl[0] = new Krieger(0,0,0,0); //Warrior
            Auswahl[1] = new Magier(0,0,0,0);  //Mage
            Auswahl[2] = new Waldlaufer(0,0,0,0); //Rouge

            return Auswahl;                          
        } 
最后一步应该是创建一个打印数组内容的方法。 我猜类似于:

class KlassenAuswahl {
Klassen[] fillKlassen() {
    Klassen[] Auswahl = new Klassen[3];

        Auswahl[0] = new Krieger(0,0,0,0); // Eclipse can't use that reference and wants me to change it to Klassen(int,int,int)
        Auswahl[1] = new Magier(0,0,0,0);
        Auswahl[2] = new Waldlaufer(0,0,0,0);

        return Auswahl;

    }
void showKlassen() {
    for(int i = 0; i < fillKlassen().length; i++) {
        System.out.println(fillKlassen()[i].getKlasse());

    }
}
KlassenAuswahl类{ Klassen[]fillKlassen(){ Klassen[]Auswahl=新Klassen[3]; Auswahl[0]=new Krieger(0,0,0,0);//Eclipse无法使用该引用,希望我将其更改为Klassen(int,int,int) Auswahl[1]=新Magier(0,0,0,0); Auswahl[2]=新的Waldlaufer(0,0,0,0); 返回奥斯瓦尔; } void showKlassen(){ 对于(int i=0;i 主要的目标是在我的main()方法中实现这个方法,但是它不能正常工作。有人能帮我吗

编辑:主要问题似乎是我得到了一个nullpointer.exception。我想这可能是由于一个空数组造成的?接下来的事情是我无法在我的main()中实现showAuswahl()可能是因为它在构造函数类内部。因此我需要在它外部创建一个新类。但是在构造函数外部,我不能使用我的子类

干杯
Namelesshamless

我得到了解决方案。需要将我的子类更改为static:)

请查看:如果您可以翻译标识符,那就太好了。您的英语显然足够好了。抱歉!我重新编写了代码:)您可以指定在哪一行获得空指针异常吗?那么您在一个文件中定义了所有这些异常吗?我们通常每个类都在自己的文件中定义,这是最好的方法。不用担心!我定义了一个包含我的构造函数的类,另一个包含整个show()内容的类:)