ja, beim einfügen prüfst du wie viele schon drinnen sind...mit einer IF bedingung?
private static ArrayList<Auto> autos = new ArrayList<Auto>();
public Auto(int serienNr, String type, String farbe, int hoechstGeschwindigkeit){
this.serienNr = serienNr;
this.type = type;
this.farbe = farbe;
autos.add(this);
}
private static ArrayList<Auto> autos = new ArrayList<Auto>();
public Auto(int serienNr, String type, String farbe, int hoechstGeschwindigkeit){
if(autos.size() < 50) {
this.serienNr = serienNr;
this.type = type;
this.farbe = farbe;
autos.add(this);
}
// Evtl dann noch nen else Teil :D
}
Ehrlich gesagt: nein, das tut es nicht! Was passiert denn, wenn die Grenze erreicht wird? Dann kann man Auto-Instanzen erzeugen, die nicht nur nicht in die Liste eingetragen worden sind, sondern bei denen nicht mal die Member initialisiert worden sind.@U2nt.....ja so schaut das recht gut aus..
import java.util.ArrayList;
import java.util.List;
public class AutoHaus {
private List<Auto> autos;
private int kapazitaet;
public AutoHaus(int kapazitaet) {
autos = new ArrayList<Auto>();
this.kapazitaet = kapazitaet;
}
public boolean addAuto(Auto auto) {
if (autos.size() >= kapazitaet)
return false;
autos.add(auto);
return true;
}
}
public class Auto {
private int serienNr, hoechstGeschwindigkeit;
private String type, farbe;
public Auto(int serienNr, String type, String farbe, int hoechstGeschwindigkeit) {
this.serienNr = serienNr;
this.type = type;
this.farbe = farbe;
this.hoechstGeschwindigkeit = hoechstGeschwindigkeit;
}
// Getter und Setter
}
public class Main {
public static void main(String[] args) {
AutoHaus audifeser = new AutoHaus(50);
for (int i = 0; i < 60; i++) {
if (audifeser.addAuto(new Auto(i+1, "Audi", "grün", 220))) {
System.out.println("Auto Nummer " + (i+1) + " hinzugefügt");
} else {
System.out.println("Autohaus kann keine Autos mehr aufnehmen");
}
}
}
}