Benutzer-Werkzeuge

Webseiten-Werkzeuge


polymorphismus:abstractclasses:problems

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
polymorphismus:abstractclasses:problems [2023/03/13 07:56] – [Aufgaben] Martin Pabstpolymorphismus:abstractclasses:problems [2023/03/14 10:48] (aktuell) – [Hauptprogramm] Martin Pabst
Zeile 21: Zeile 21:
    String rufname;    String rufname;
    String familienname;    String familienname;
-   boolean weiblich;+   char geschlecht                // Werte 'm', 'w' oder 'd'
    Textgenerator textgenerator;    Textgenerator textgenerator;
  
Zeile 47: Zeile 47:
  
 Person[] personen = { Person[] personen = {
-   new Person("Luise", "Lohengrin", true, formell), +   new Person("Luise", "Lohengrin", 'w', formell), 
-   new Person("Max", "Müller", false, vertraut), +   new Person("Max", "Müller", 'm', vertraut), 
-   new Person("Dieter", "Denkmal", true, formell), +   new Person("Dieter", "Denkmal", 'm', formell), 
-   new Person("Bettina", "Berger", false, formell)+   new Person("Bettina", "Berger", 'w', formell)
 }; };
  
Zeile 61: Zeile 61:
    println();    println();
 } }
- 
 </script> </script>
  
Zeile 75: Zeile 74:
    String rufname;    String rufname;
    String familienname;    String familienname;
-   boolean weiblich;+   char geschlecht       // Werte: 'm', 'w', 'd'
    Textgenerator textgenerator;    Textgenerator textgenerator;
  
-   Person(String rufname, String familienname, boolean weiblich,+   Person(String rufname, String familienname, char geschlecht,
       Textgenerator textgenerator) {       Textgenerator textgenerator) {
       this.rufname = rufname;       this.rufname = rufname;
       this.familienname = familienname;       this.familienname = familienname;
-      this.weiblich weiblich;+      this.geschlecht geschlecht;
       this.textgenerator = textgenerator;       this.textgenerator = textgenerator;
    }    }
Zeile 91: Zeile 90:
        
   public void anrede(Person p) {   public void anrede(Person p) {
-      print("Sehr geehrter "); +       
-      if(p.weiblich) { +      switch(p.geschlecht) { 
-         print("Herr ");  +         case 'm' :  
-      } else { +            print("Sehr geehrter Herr " + p.familienname + ", ");  
-         print("Frau ");+            break; 
 +         case 'w' :  
 +            print("Sehr geehrte Frau "+ p.familienname + ", "); 
 +            break; 
 +         case 'd' :  
 +            print("Guten Tag, " + p.rufname + " " + p.familienname + ", ");              
 +            break; 
 +         default :  
 +             
       }       }
-      println(p.familienname + ", ");+      
   }   }
  
Zeile 106: Zeile 113:
  
 } }
 +
 </script> </script>
 </div> </div>
Zeile 113: Zeile 121:
 ===== Aufgaben ===== ===== Aufgaben =====
 <WRAP center round todo 80%> <WRAP center round todo 80%>
-  * a) Schreibe die Klasse ''TextgeneratorVertraut'', die den Text so ausgibt, wie Du ihn einer anderen Schülerin/einem anderen Schüler schreiben würdest. +  * a) Zeichne ein Klassendiagramm (Klassen mit Methoden, ohne Attribute). 
-  * b) Ergänze die Textgeneratoren durch eine Methode ''hauptteil(Person p)'', die den Hauptteil des Briefes ausgibt. Dabei wird es Teile geben, die in jeder Textform gleich sind (z.B. Datum und Uhrzeit des Konzertes). Sie sollen natürlich nicht in redundanter Weise in allen Unterklassen der Klasse ''Textgenerator'' immer wieder auftauchen. Überlege, wo Du diese Textteile geeignet speichern könntest, damit sie in allen Unterklassen von ''Textgenerator'' zur Verfügung stehen.+  * b) Schreibe die Klasse ''TextgeneratorVertraut'', die den Text so ausgibt, wie Du ihn einer anderen Schülerin/einem anderen Schüler schreiben würdest. 
 +  * c) Ergänze die Textgeneratoren durch eine Methode ''hauptteil(Person p)'', die den Hauptteil des Briefes ausgibt. Dabei wird es Teile geben, die in jeder Textform gleich sind (z.B. Datum und Uhrzeit des Konzertes). Sie sollen natürlich nicht in redundanter Weise in allen Unterklassen der Klasse ''Textgenerator'' immer wieder auftauchen. Überlege, wo Du diese Textteile geeignet speichern könntest, damit sie in allen Unterklassen von ''Textgenerator'' zur Verfügung stehen.
 </WRAP> </WRAP>
  
  
polymorphismus/abstractclasses/problems.1678694194.txt.gz · Zuletzt geändert: 2023/03/13 07:56 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki