Moin!
Habe mich an eine Aufgabe aus dem Studium gewagt die wie folgt klingt: "Schreiben Sie ein Programm, das die Struktur eines Unternehmens abbildet. In dem Unternehmen gibt es mehrere Abteilungen. In jeder Abteilung arbeiten mehrere Angestellte und ein Abteilungsleiter." Der Angestellte hat dann diverse Attribute und der Abteilungsleiter soll ein Angestellter sein (also von ihm erben).
Soweit so gut, habe das ganze dann ausprogrammiert, wollte es mit ein paar Werten füttern aber es wird eine NullPointerException geworfen. Ich weiß, was
diese bedeutet und deshalb ist es mir umso rätselhafter, weshalb sie in diesem Fall geworfen wird. Hier ist der Code:
Habe mich an eine Aufgabe aus dem Studium gewagt die wie folgt klingt: "Schreiben Sie ein Programm, das die Struktur eines Unternehmens abbildet. In dem Unternehmen gibt es mehrere Abteilungen. In jeder Abteilung arbeiten mehrere Angestellte und ein Abteilungsleiter." Der Angestellte hat dann diverse Attribute und der Abteilungsleiter soll ein Angestellter sein (also von ihm erben).
Soweit so gut, habe das ganze dann ausprogrammiert, wollte es mit ein paar Werten füttern aber es wird eine NullPointerException geworfen. Ich weiß, was
diese bedeutet und deshalb ist es mir umso rätselhafter, weshalb sie in diesem Fall geworfen wird. Hier ist der Code:
Java:
public class Aufg3Unternehmen {
Aufg3Abteilung[] abteilungen;
}
Java:
public class Aufg3Abteilung {
Aufg3Angestellter[] angestellte;
Aufg3Abteilungsleiter abteilungsleiter;
}
Java:
public class Aufg3Angestellter {
String nachname;
String vorname;
String identifikator;
double grundgehalt = 2000;
double gehaltsfaktor = 1;
String geburtsdatum;
double gehalt;
public double getGehalt() {
gehalt = grundgehalt * gehaltsfaktor;
return gehalt;
}
public String getNachname() {
return nachname;
}
public void setNachname(String nachname) {
this.nachname = nachname;
}
public String getVorname() {
return vorname;
}
public void setVorname(String vorname) {
this.vorname = vorname;
}
public String getIdentifikator() {
return identifikator;
}
public void setIdentifikator(String identifikator) {
this.identifikator = identifikator;
}
public double getGrundgehalt() {
return grundgehalt;
}
public void setGrundgehalt(double grundgehalt) {
this.grundgehalt = grundgehalt;
}
public double getGehaltsfaktor() {
return gehaltsfaktor;
}
public void setGehaltsfaktor(double gehaltsfaktor) {
this.gehaltsfaktor = gehaltsfaktor;
}
public String getGeburtsdatum() {
return geburtsdatum;
}
public void setGeburtsdatum(String geburtsdatum) {
this.geburtsdatum = geburtsdatum;
}
}
Java:
public class Aufg3Abteilungsleiter extends Aufg3Angestellter {
double gehaltsfaktor = 2;
public void befoerdern(Aufg3Angestellter angestellter) {
angestellter.gehaltsfaktor = angestellter.gehaltsfaktor * 1.1;
}
@Override
public double getGehalt() {
gehalt = grundgehalt * gehaltsfaktor;
return gehalt;
}
}
Java:
public class Aufg3Main {
public static void main(String[] args) {
Aufg3Unternehmen unternehmen = new Aufg3Unternehmen();
unternehmen.abteilungen = new Aufg3Abteilung[1];
unternehmen.abteilungen[0].angestellte = new Aufg3Angestellter[1];
unternehmen.abteilungen[0].abteilungsleiter = new Aufg3Abteilungsleiter();
unternehmen.abteilungen[0].angestellte[0] = new Aufg3Angestellter();
System.out.println("Angestellter Gehalt: " + unternehmen.abteilungen[0].angestellte[0].getGehalt());
System.out.println("Abteilungsleiter Gehalt: " + unternehmen.abteilungen[0].abteilungsleiter.getGehalt());
unternehmen.abteilungen[0].abteilungsleiter.befoerdern(unternehmen.abteilungen[0].angestellte[0]);
System.out.println("Angestellter befördert Gehalt: " + unternehmen.abteilungen[0].angestellte[0].getGehalt());
}
}