Hallo Leute,
Ich kann bei der Objektorientierung mein Objekt erzeugen und gleichzeitig mein Konstruktor aufrufen: test meinTest = new Test();
Man kann es auch einzelt durchführen: test meinTest; meinTest = new Test();
Was wäre in folgender Situation besser?
Ich hab eine Switch-Case-Verzweigung und brauche die Methoden der Objektklasse(test) für case 1,2 und 3, aber nicht für default.
Sollte ich:
1) vor der Switch-Case-Verzweigung mein Objekt erzeugen und Konstruktor aufrufen oder
2) vor der Switch-Case-Verzweigung nur mein Objekt erzeugen und mein Konstruktor dann in case 1,2 und 3 aufrufen?
Was ich weiß:
Die erste Möglichkeit würde mein Code verkürzen, jedoch unnötig den Konstruktor aufrufen, falls default eintreffen sollte.
D.h. es startet so oder so, egal ob es gebraucht wird oder nicht - dafür aber kürzeren Code.
Die zweite Möglichkeit würde mein Code verlängern bzw. in jedem case würde sich derselbe Konstruktoraufruf befinden (was blöd aussieht) außer in default.
d.h. es würde nur starten, wenn auch wirklich einer der Case eintreffen würde - dafür aber längeren Code.
Noch eine Frage:
Mit welcher Option würde außerdem ein Programm schneller laufen? Bei den unteren Beispielen findet wahrscheinlich keine Verzögerung statt.
Aber was wenn ich einen riesen Code habe und solch einer Situation begegne, wo ich mich für eine der beiden Möglichkeiten entscheiden muss?
Ich bedanke mich im voraus!
Ich kann bei der Objektorientierung mein Objekt erzeugen und gleichzeitig mein Konstruktor aufrufen: test meinTest = new Test();
Man kann es auch einzelt durchführen: test meinTest; meinTest = new Test();
Was wäre in folgender Situation besser?
Ich hab eine Switch-Case-Verzweigung und brauche die Methoden der Objektklasse(test) für case 1,2 und 3, aber nicht für default.
Sollte ich:
1) vor der Switch-Case-Verzweigung mein Objekt erzeugen und Konstruktor aufrufen oder
2) vor der Switch-Case-Verzweigung nur mein Objekt erzeugen und mein Konstruktor dann in case 1,2 und 3 aufrufen?
Was ich weiß:
Die erste Möglichkeit würde mein Code verkürzen, jedoch unnötig den Konstruktor aufrufen, falls default eintreffen sollte.
D.h. es startet so oder so, egal ob es gebraucht wird oder nicht - dafür aber kürzeren Code.
Die zweite Möglichkeit würde mein Code verlängern bzw. in jedem case würde sich derselbe Konstruktoraufruf befinden (was blöd aussieht) außer in default.
d.h. es würde nur starten, wenn auch wirklich einer der Case eintreffen würde - dafür aber längeren Code.
Noch eine Frage:
Mit welcher Option würde außerdem ein Programm schneller laufen? Bei den unteren Beispielen findet wahrscheinlich keine Verzögerung statt.
Aber was wenn ich einen riesen Code habe und solch einer Situation begegne, wo ich mich für eine der beiden Möglichkeiten entscheiden muss?
Ich bedanke mich im voraus!
Java:
1)
public class start{
public static void main(String[] args){
System.out.println("Inhalt Tank 1 = 1000 Liter, Tank 2 = 2000 Liter\n1 - Tank befüllen\n2 - Tank entleeren\n3 - Tanks umfüllen\n9 - Abbruch\n");
int wahl = InOut.readInt("Wahl?\t");
int menge = InOut.readInt("Menge\t");
int startTank = InOut.readInt("Tank Nr.?\t");
tank meinTank = new tank(menge, startTank);
switch (wahl) {
case 1:
....
break;
case 2:
.....
break;
case 3:
.....
break;
default:
System.out.println("fail");
} // end of switch
}
}
Java:
2)
public class start{
public static void main(String[] args){
System.out.println("Inhalt Tank 1 = 1000 Liter, Tank 2 = 2000 Liter\n1 - Tank befüllen\n2 - Tank entleeren\n3 - Tanks umfüllen\n9 - Abbruch\n");
int wahl = InOut.readInt("Wahl?\t");
int menge = InOut.readInt("Menge\t");
int startTank = InOut.readInt("Tank Nr.?\t");
tank meinTank;
switch (wahl) {
case 1:
meinTank = new tank(menge, startTank);
.....
break;
case 2:
meinTank = new tank(menge, startTank);
.....
break;
case 3:
meinTank = new tank(menge, startTank);
.....
break;
default:
System.out.println("fail");
} // end of switch
}
}