Я новичок в 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());
}
}
Основная цель - реализовать этот метод в моем методе main (), но он не будет работать должным образом. Кто-нибудь может мне помочь?
Редактировать: Основная проблема в том, что я получаю исключение nullpointer.exception. Это может быть результатом пустого массива, я думаю? Следующее, что я не могу реализовать showAuswahl () в моем main (), возможно, потому что он внутри класса конструктора. Поэтому мне нужно создать новый класс вне его. Но за пределами конструктора я не могу использовать свои подклассы ...
Приветствие
namelessshameless