Java Klassen ableiten: Personen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Java Klassen ableiten: Personen

    Quellcode

    1. /**
    2. *
    3. * @author Torben Brodt
    4. * @version 1.0
    5. *
    6. * <p />Gibt Daten aus
    7. */
    8. enum Monat {Januar, Februar, Maerz, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember};
    9. public class A02_PersonenTest {
    10. public static void main(String[] args) {
    11. Person person = new Person("Leona", "Schmitt", new Datum(1, Monat.Januar, 1900));
    12. Student student = new Student("Adam", "Riese", new Datum(1, Monat.Januar, 1900), 17, "FH-Wiesbaden");
    13. Schueler schueler = new Schueler("Eva", "Zwerg", new Datum(1, Monat.Januar, 1900), 11, "Zwergenschule");
    14. Angestellter angestellter = new Angestellter("Klaus", "Wichtel", new Datum(1, Monat.Januar, 1900), 50000, "AdamUndEvaGmbH");
    15. System.out.println(person);
    16. System.out.println(student);
    17. System.out.println(schueler);
    18. System.out.println(angestellter);
    19. }
    20. }
    21. /**
    22. * Klasse enthält Tag, Monat, Jahr
    23. * @author tbr
    24. *
    25. */
    26. class Datum {
    27. public int tag;
    28. public Monat monat;
    29. public int jahr;
    30. /**
    31. * Ich bin ein Konstruktor
    32. * @param tag
    33. * @param monat
    34. * @param jahr
    35. */
    36. public Datum(int tag, Monat monat, int jahr) {
    37. this.tag = tag;
    38. this.monat = monat;
    39. this.jahr = jahr;
    40. }
    41. public String toString() {
    42. return this.tag + "." + this.monat + " " + this.jahr;
    43. }
    44. }
    45. /**
    46. * Superklasse, die eine Person mit Geburtsdatum, Vor-& Nachname beschreibt
    47. */
    48. class Person {
    49. String vorname, nachname;
    50. Datum datum;
    51. /**
    52. * Konstruktor
    53. * @param vorname
    54. * @param nachname
    55. * @param datum
    56. */
    57. public Person(String vorname, String nachname, Datum datum) {
    58. this.vorname = vorname;
    59. this.nachname = nachname;
    60. this.datum = datum;
    61. }
    62. /**
    63. * Überschreibt die String-Rückgabe-Funktion
    64. */
    65. public String toString() {
    66. return vorname+"\t"+nachname+"\t"+datum;
    67. }
    68. }
    69. /**
    70. * Unterklasse von Person abgeleitet
    71. * @author tbr
    72. *
    73. */
    74. class Student extends Person {
    75. int semester;
    76. String schule;
    77. /**
    78. * Konstruktor
    79. * @param vorname
    80. * @param nachname
    81. * @param datum
    82. * @param semester
    83. * @param schule
    84. */
    85. public Student(String vorname, String nachname, Datum datum, int semester, String schule) {
    86. super(vorname, nachname, datum);
    87. this.semester = semester;
    88. this.schule = schule;
    89. }
    90. /**
    91. * Sorgt für eine schöne Ausgabe
    92. */
    93. public String toString() {
    94. return super.toString() +" - Im "+ semester+". Semester an der "+schule;
    95. }
    96. }
    97. class Schueler extends Person {
    98. int klasse;
    99. String schule;
    100. public Schueler(String vorname, String nachname, Datum datum, int klasse, String schule) {
    101. super(vorname, nachname, datum);
    102. this.klasse = klasse;
    103. this.schule = schule;
    104. }
    105. public String toString() {
    106. return super.toString() +" - In der "+klasse+". Klasse an der "+schule;
    107. }
    108. }
    109. class Angestellter extends Person {
    110. String firma;
    111. double gehalt;
    112. public Angestellter(String vorname, String nachname, Datum datum, double gehalt, String firma) {
    113. super(vorname, nachname, datum);
    114. this.firma = firma;
    115. this.gehalt = gehalt;
    116. }
    117. public String toString() {
    118. return super.toString() +" - Firma: "+firma+" - Gehalt: "+gehalt;
    119. }
    120. }
    Alles anzeigen