So habe ich eine allgemeine Frage. Sagen wir, ich möchte Auto-Objekte in diesem Programm erstellen, das ich schreibe, und ich muss Hunderte von diesem Auto-Objekt erstellen. Ist es besser, eine abstrakte Auto-Klasse zu erstellen und sie zu erweitern, wenn ich mein Auto-Objekt mache (zB Toyota, Nissan, etc.) oder könnte ich eine Reihe von statischen Klassen verwenden, die die Details des spezifischen Objekts enthalten und in einem allgemeinen verwenden Auto-Objekt, um den Toyota oder Nissan zu machen? Ich denke, die die abstrakte Methode ziemlich selbsterklärend sein sollten, aber hier ist ein Beispiel für die zweite Methode:Verwenden Sie statische Klasse oder abstrakte Klasse für die Objekterstellung
public class CarNames {
public static String getCarName(int pCarIndex){
switch (pCarIndex) {
case 0:
return "Toyota";
default:
throw new Error("pCarIndex does not exist!");
}
}
}
, die in dieser Klasse verwendet wird, um das Objekt zu erstellen:
public class Car{
private int mCar_ID;//This indicates which Car to load
private String mCarName;
public Car(int pCar_ID){
mCar_ID = pCar_ID;
mCarName = CarNames.getCarName(pCar_ID);
//Do Stuff with collected parameters
}
}
Lassen Sie mich wissen, wenn etwas keinen Sinn ergibt. Vielen Dank.
EDIT: Die Autos können verschiedene Parameter wie Größe, Motor usw. haben. Der Grund, warum ich eine abstrakte Klasse wählte, ist, weil ich denke, dass es mehr Flexibilität als eine Schnittstelle bietet, da ich Methoden auf der ganzen Linie hinzufügen könnte.
Ist die einzige Sache, die zwischen jeder Art von Auto der Name unterscheidet? Oder werden sie ihre eigenen Methoden haben? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
In dem von Ihnen geposteten Code können Sie [enums] (http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html) anstelle von Ints verwenden. – assylias
Du sprichst also die statischen Klassen komplett aus und gehst direkt zu enums? Ich muss das auffrischen. – eBehbahani