Java:
public abstract class Fahrzeug {
public static enum Typ {PKW,LKW};
public Fahrzeug(String hersteller, String modell, int leistung, Typ typ){
this(typ);
this.hersteller=hersteller;
this.modell=modell;
this.leistung=leistung;
}
private String hersteller;
private String modell;
private int leistung;
private Typ typ;
public Fahrzeug(Typ t){
this.typ = t;
}
public Typ getTyp(){
return this.typ;
}
public String toString(){
return typ.toString()+", "+hersteller+ ", "+modell+", "+leistung+" PS";
}
// TODO
}
Java:
public class PKW extends Fahrzeug{
private int sitze;
public PKW(String hersteller, String modell, int leistung,int sitze){
super(hersteller,modell,leistung,Fahrzeug.Typ.PKW);
this.sitze=sitze;
}
public String toString(){
return super.toString()+"Sitze: "+sitze;
}
}
Java:
import java.text.DecimalFormat;
public class LKW extends Fahrzeug{
private int nutzlast;
double temp=nutzlast/1000;
private static final DecimalFormat te=new DecimalFormat (" Nutzlast: #,0 t");
public LKW (String hersteller, String modell, int leistung, int nutzlast){
super(hersteller,modell,leistung,Fahrzeug.Typ.LKW);
this.nutzlast=nutzlast;
}
public String toString(){
return super.toString()+te.format(temp);
}
}
Java:
public class FahrzeugPool {
private Fahrzeug[] fahrzeuge;
private int nextIndx = 0;
public FahrzeugPool(int a){
fahrzeuge= new Fahrzeug[a];
}
public boolean addFahrzeug(Fahrzeug a){
if(nextIndx!=fahrzeuge.length-1){
fahrzeuge[nextIndx]=a;
nextIndx+=1;
return true;
}else{
return false;
}
}
public String toString(){
StringBuffer baba= new StringBuffer();
StringBuffer baba2=new StringBuffer();
for (int i=0; i<fahrzeuge.length;i++){
switch(fahrzeuge[i].getTyp()){
case PKW:
baba.append(fahrzeuge[i].toString());
break;
case LKW:
baba2.append(fahrzeuge[i].toString());
break;
}
}
baba.append("");
baba.append(baba2);
return baba.toString();
}
// TODO
}
Java:
public class Aufgabe_3{
private static FahrzeugPool fPool;
private static final String[][] fahrzeugDaten = {
{"PKW","Honda", "Civic", "105","5"},
{"LKW","MAN", "TGX", "540","25000"},
{"PKW","Mercedes Benz","C 200", "180","5"},
{"LKW","Volvo", "FH", "500","22000"},
{"PKW","VW", "Golf", "140","5"},
{"LKW","Mercedes Benz","Actros", "625","26550"},
{"PKW","Porsche", "911", "400","2"},
{"PKW","Mercedes Benz","A 180", "120","5"},
{"PKW","Audi", "A1", "90" ,"4"},
{"LKW","MAN", "TGL", "380","18500"},
{"PKW","Citroen", "C4", "115","5"},
{"PKW","Fiat", "Punto", "70" ,"4"},
{"PKW","Audi", "A3", "140","5"},
{"LKW","Mercedes Benz","Atego", "250","10000"},
{"PKW","Mercedes Benz","E 250", "280","5"},
{"PKW","Ford", "C-Max", "125","5"},
{"LKW","Volvo", "FM", "400","20000"},
{"PKW","Opel", "Astra", "140","5"},
{"PKW","Honda", "Accord", "150","5"}
};
public static void initPool(){
fPool= new FahrzeugPool(fahrzeugDaten.length);
for (int i=0; i<fahrzeugDaten.length;i++){
if(fahrzeugDaten[i][0].equals("PKW")){
PKW baba= new PKW(fahrzeugDaten[i][1],fahrzeugDaten[i][2],Integer.parseInt(fahrzeugDaten[i][3]),Integer.parseInt(fahrzeugDaten[i][4]));
}else{
LKW baba= new LKW(fahrzeugDaten[i][1],fahrzeugDaten[i][2],Integer.parseInt(fahrzeugDaten[i][3]),Integer.parseInt(fahrzeugDaten[i][4]));
}
}
// TODO
}
public static void main(String[] args){
initPool();
System.out.println(fPool.toString());
}
}
Der Kompiler sagt der Fehler kommt wegen der Klasse Aufgabe:_3, wegen dem System.out.println() beim Fahrzeugpool sei beim switch, wo ich gettyp mache, eine nullpointerexception, warum? Ich initialisiere doch bei Aufgabe_3 meinen Fahrzeugpool?