L Sungs Vorschlag Seite15
- 1. Lösungsvorschlag: Klassendiagramme und Vererbung 16
private int rechneAlter() {
Klasse Person int alter = 0;
if (gebDatum != null) {
import java.util.Date;
Date heute = new Date();
public class Person {
long tmpWert = heute.getTime() - gebDatum.getTime();
private String name = quot;unbekanntquot;;
// Näherungsweise Berechnung des Alters
private char geschlecht = 'w';
alter = (int) (tmpWert / 1000 / 60 / 60 / 24 / 365);
private Date gebDatum = null;
if (alter < 0) { alter = 0; }
}
public String holeName() { return name; }
return alter;
public void setzeName(String name) {
}
if (name.length() > 0) {
} // class Person
this.name = name;
}
} Klasse Schüler
public class Schüler extends Person {
public char holeGeschlecht() { return geschlecht; } protected String schülerNr = quot;0000quot;;
public void setzeGeschlecht(char geschlecht) { private String klasse = quot;quot;;
if (geschlecht == 'w' || geschlecht == 'm') {
this.geschlecht = geschlecht; public Schüler(String schülerNr) {
} if (schülerNr.length() == 4) {
} this.schülerNr = schülerNr;
// Überladung ohne Übergabeparameter }
public void setzeGeschlecht() { setzeGeschlecht('w'); } }
public int holeAlter() { return rechneAlter(); } public String holeKlasse() { return klasse; }
public void setzeGebDatum(Date gebDatum) { public void setzeKlasse(String klasse) {
this.gebDatum = gebDatum; if (klasse.length() == 0 || klasse.length() == 4) {
} this.klasse = klasse;
}
public String zeigeDaten() { }
String erg = name + quot; Geschlecht=quot; + geschlecht
+ quot; Alter=quot; + holeAlter(); @Override
if (gebDatum != null) { public String zeigeDaten() {
erg += quot; GebDatum=quot; + gebDatum.toString(); String erg = super.zeigeDaten();
} erg = schülerNr + quot; quot; + klasse + quot; quot; + erg;
return erg; return erg;
} }
} // class Schüler
- 2. Lösungsvorschlag: Klassendiagramme und Vererbung 17
Klasse Mitarbeiter Klasse Verwaltung
public class Mitarbeiter extends Person { public class Verwaltung {
private String kuerzel = quot;????quot;; protected Person[] diePersonen = new Person[4];
private double honorar = 0; public void erzeugeSchüler() {
private String position; Schüler s = new Schüler(quot;1234quot;);
s.setzeGeschlecht('m');
public Mitarbeiter(String kuerzel) { s.setzeGebDatum( java.sql.Date.valueOf(quot;1980-11-31quot;) );
if (kuerzel.length() == 4) { s.setzeName(quot;Hugo Wichtigquot;);
this.kuerzel = kuerzel; s.setzeKlasse(quot;MH07quot;);
} diePersonen[0] = s;
}
s = new Schüler(quot;2345quot;);
public double holeHonorar() { return honorar; } s.setzeGeschlecht('w');
public void setzeHonorar(double honorar) { s.setzeName(quot;Lisa Harschquot;);
if (honorar >= 0.0) { s.setzeKlasse(quot;MH07quot;);
this.honorar = honorar; diePersonen[1] = s;
} }
}
public void erzeugeMitarbeiter() {
public String holePosition() { return position; } Mitarbeiter m = new Mitarbeiter(quot;ABCDquot;);
public void setzePosition(String position) { m.setzeGeschlecht('m');
this.position = position; m.setzeName(quot;Helmut Schmidtquot;);
} m.setzeHonorar(1234.56);
diePersonen[2] = m;
public String zeigeDaten() {
String erg = super.zeigeDaten(); m = new Mitarbeiter(quot;XYZAquot;);
erg = kuerzel + quot; Pos=quot; + position + m.setzeGeschlecht('w');
quot; Honorar=quot; + honorar + quot; quot; + erg; m.setzeName(quot;Angela Merkelquot;);
return erg; m.setzeHonorar(5678.56);
} m.setzePosition(quot;Kanzlerinquot;);
} diePersonen[3] = m;
}
Klasse ProgrammStart
public class ProgrammStart { public void zeigeDaten() {
public static void main(String[] args) { for (int i = 0; i<diePersonen.length; i++) {
Verwaltung eineVerwaltung = new Verwaltung(); if (diePersonen[i] != null) {
eineVerwaltung.erzeugeSchüler(); System.out.println(diePersonen[i].zeigeDaten());
eineVerwaltung.erzeugeMitarbeiter(); }
eineVerwaltung.zeigeDaten(); }
} }
} }