Guten Tag,
hab mal wieder eine Frage
Ich habe ein paar Klassen geschrieben (Räume). Es sind folgende Räume:
Raum, Seminarraum, Hörsaal, Professorbüro, Büro und Rechnerraum.
Nun möchte ich eine Main schreiben in der ich per Zufall Räume erstelle und dann diese Räume mit Sitzplätzen initialisiere. Doch es dürfen nur Seminarraum, Hörsaal, Professorbüro Sitzplätze bekommen. Das ganze klappt auch soweit doch muss ich das ganze wirklich so umständlich machen?
In der Klasse Raum von denen ich die andere Räume ableite habe ich nur ein int wert drin
In den anderen Klassen stehen nur getter und setter drin
so sieht meine Main Klasse aus:
Die Klasse ist noch nicht aufgeräumt die zwei schleifen kommen noch in jeweils 1 Methode
Meine Frage ist eigentlich nur ob die "if-kaskeden" in meinen Schleifen nicht schöner/besser gehen oder muss man das so umständlich machen?
Ich hatte erst angefangen in der Klasse Raum jede Methode rein zu packen und die Klasse dann einfach abstract gemacht doch das wird eine Fette Basisklasse oder eben eine Unvollständige Klasse.
Ich würde sie gerne so lassen also Standard Klasse
LG
hab mal wieder eine Frage
Ich habe ein paar Klassen geschrieben (Räume). Es sind folgende Räume:
Raum, Seminarraum, Hörsaal, Professorbüro, Büro und Rechnerraum.
Nun möchte ich eine Main schreiben in der ich per Zufall Räume erstelle und dann diese Räume mit Sitzplätzen initialisiere. Doch es dürfen nur Seminarraum, Hörsaal, Professorbüro Sitzplätze bekommen. Das ganze klappt auch soweit doch muss ich das ganze wirklich so umständlich machen?
In der Klasse Raum von denen ich die andere Räume ableite habe ich nur ein int wert drin
Java:
public class Raum {
int nummer;
// public abstract void setSitze(int sitze);
// public abstract int getSitze();
}
In den anderen Klassen stehen nur getter und setter drin
so sieht meine Main Klasse aus:
Java:
public class MainRaueme {
public static Raum[] befuehllenZufall(Raum[] raum) {
for(int i=0;i<raum.length;i++) {
int k=(int)(Math.random()*5+1);
if(k==1)
raum[i]=new Seminarraum();
else if(k==2)
raum[i]=new Hoersaal();
else if(k==3)
raum[i]=new Buero();
else if(k==4)
raum[i]=new Rechnerraum();
else if(k==5)
raum[i]=new Professorbuero();
}
return raum;
}
public static void main(String[] args) {
Raum[] raum = new Raum[10];
befuehllenZufall(raum);
for(int i=0;i<raum.length;i++) {
System.out.println(raum[i].toString());
if(raum[i] instanceof Seminarraum) {
int k=(int)(Math.random()*50+1);
((Seminarraum) raum[i]).setSitze(k);
}
else if(raum[i] instanceof Hoersaal) {
int k=(int)(Math.random()*50+1);
((Hoersaal) raum[i]).setSitze(k);
}
else if(raum[i] instanceof Professorbuero) {
int k=(int)(Math.random()*50+1);
((Professorbuero) raum[i]).setSitze(k);
}
}
int anzahl=0;
for(int i=0;i<raum.length;i++) {
if(raum[i] instanceof Seminarraum) {
Seminarraum tmp = (Seminarraum) raum[i];
System.out.println(tmp.toString()+" "+tmp.getSitze());
anzahl+=tmp.getSitze();
}
else if(raum[i] instanceof Hoersaal) {
Hoersaal tmp = (Hoersaal) raum[i];
System.out.println(tmp.toString()+" "+tmp.getSitze());
anzahl+=tmp.getSitze();
}
else if(raum[i] instanceof Professorbuero) {
Professorbuero tmp = (Professorbuero) raum[i];
System.out.println(tmp.toString()+" "+tmp.getSitze());
anzahl+=tmp.getSitze();
}
}
System.out.println(anzahl);
}
}
Die Klasse ist noch nicht aufgeräumt die zwei schleifen kommen noch in jeweils 1 Methode
Meine Frage ist eigentlich nur ob die "if-kaskeden" in meinen Schleifen nicht schöner/besser gehen oder muss man das so umständlich machen?
Ich hatte erst angefangen in der Klasse Raum jede Methode rein zu packen und die Klasse dann einfach abstract gemacht doch das wird eine Fette Basisklasse oder eben eine Unvollständige Klasse.
Ich würde sie gerne so lassen also Standard Klasse
LG