Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
schule:klassen:2018:10bc:kap1 [2019/10/01 07:03] – [Übung] martin | schule:klassen:2018:10bc:kap1 [2021/12/29 10:40] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Grundbegriffe der Objektorientierung ====== | ||
+ | ===== Aufgabe 1 ===== | ||
+ | * Erstelle eine Klasse HelloWorld mit einer Methode textausgabe( ), die den Text „Hallo Welt“ ausgibt! | ||
+ | * Instanziere ein Objekt der Klasse und rufe für dieses Objekt die Methode textausgabe( ) auf. | ||
+ | **Lösung: | ||
+ | <code java> | ||
+ | public class HelloWorld | ||
+ | { | ||
+ | public void textausgabe(){ | ||
+ | System.out.println(" | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Aufgabe 2 ===== | ||
+ | * Füge der Klasse HelloWorld eine Methode rechtecksflächeAusgeben() hinzu, die die Fläche eines Rechtecks mit der Länge 10 cm und der Breite 8 cm ausgibt. | ||
+ | | ||
+ | <code java> | ||
+ | public class HelloWorld | ||
+ | { | ||
+ | public void rechtecksflächeAusgeben(){ | ||
+ | System.out.println(" | ||
+ | System.out.println(10 * 8); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | * Füge der Methode die Parameter '' | ||
+ | * Erweitere die Methode so dass sie auch den Umfang ausgibt! | ||
+ | <code java> | ||
+ | public class HelloWorld | ||
+ | { | ||
+ | public void textausgabe(){ | ||
+ | System.out.println(" | ||
+ | } | ||
+ | | ||
+ | public void rechtecksflächeAusgeben(double länge, double breite){ | ||
+ | System.out.println(" | ||
+ | System.out.println(länge * breite); | ||
+ | System.out.println(" | ||
+ | System.out.println(2*(länge + breite)); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Aufgabe 3 ===== | ||
+ | Schreibe \\ | ||
+ | a) eine Methode kreisUmfangAusgeben(double radius) \\ | ||
+ | b) eine Methode quaderOberflächeAusgeben(double länge, double breite, double höhe) \\ | ||
+ | c) eine Methode zufallszahlAusgeben(double von, double bis) \\ | ||
+ | //Tipp:// Die Methode Math.random() liefert eine Zufallszahl im Intervall [0; 1[ | ||
+ | |||
+ | <code java> | ||
+ | public void kreisUmfangAusgeben(double radius){ | ||
+ | System.out.println(" | ||
+ | System.out.println(2 * 3.14159 * radius); | ||
+ | } | ||
+ | | ||
+ | public void quaderoberflächeAusgeben(double länge, double breite, | ||
+ | double höhe){ | ||
+ | System.out.println(" | ||
+ | System.out.println(2*länge*breite + 2*länge*höhe + 2*breite*höhe); | ||
+ | } | ||
+ | | ||
+ | public void zufallszahlAusgeben(double von, double bis){ | ||
+ | System.out.println(" | ||
+ | System.out.println(von + Math.random()*(bis - von)); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Übung ===== | ||
+ | |||
+ | - Schreibe eine Methode zylindervolumenAusgeben, | ||
+ | - Schreibe eine Methode zufall, die zwei ganze Zahlen von und bis als Parameter entgegennimmt und eine ganze Zufallszahl aus der Menge {von, …, bis} zurückliefert. | ||
+ | |||
+ | ==== Tipp 1: === | ||
+ | Die Methode Math.random() liefert eine Zufallszahl aus dem Intervall [0;1[ zurück. | ||
+ | |||
+ | === Tipp 2: === | ||
+ | Die Methode (int)Math.floor(a) liefert den ganzzahligen Anteil der Zahl a zurück. | ||
+ | |||
+ | === Lösung: === | ||
+ | <code java> | ||
+ | public void zylindervolumenAusgeben(double radius, double höhe){ | ||
+ | return Math.PI * radius * radius * höhe; | ||
+ | } | ||
+ | |||
+ | public int zufall(int von, int bis){ | ||
+ | return von + (int)Math.floor( Math.random()*(bis - von + 1)); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Aufgabe 4 ===== | ||
+ | ==== Die Klasse Auto: ==== | ||
+ | <code java> | ||
+ | public class Auto { | ||
+ | |||
+ | private String modell; | ||
+ | private double leistungKW; | ||
+ | |||
+ | public void setzeName(String m){ | ||
+ | modell = m; | ||
+ | } | ||
+ | |||
+ | public void setzeLeistungKW(double kw){ | ||
+ | leistungKW = kw; | ||
+ | } | ||
+ | |||
+ | public void schreibeDaten(){ | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | } | ||
+ | |||
+ | |||
+ | public static void main(String[] args) { | ||
+ | new Auto().test(); | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | ==== Nutzung der Klasse (beispielhaft): | ||
+ | <code java> | ||
+ | Auto a1 = new Auto(); | ||
+ | a1.setzeName(" | ||
+ | a1.setzeLeistungKW(90); | ||
+ | a1.schreibeDaten(); | ||
+ | |||
+ | Auto a2 = new Auto(); | ||
+ | a2.setzeName(" | ||
+ | a2.setzeLeistungKW(45); | ||
+ | a2.schreibeDaten(); | ||
+ | </ | ||
+ | **Ausgabe: | ||
+ | < | ||
+ | Modell: Audi A4 | ||
+ | Leistung: 90.0 kW | ||
+ | Modell: VW Käfer | ||
+ | Leistung: 45.0 kW | ||
+ | </ | ||
+ | |||
+ | **Aufgabe: | ||
+ | - Erweitere die Klasse um ein Attribut farbe vom Datentyp String! | ||
+ | - Schreibe eine Klasse Tier mit den Attributen art, name, anzahlBeine und hatFell! | ||
+ | | ||
+ | ** Lösung ** | ||
+ | <code java> | ||
+ | public class Tier { | ||
+ | |||
+ | private String art; | ||
+ | private String name; | ||
+ | private int anzahlBeine; | ||
+ | private boolean hatFell; | ||
+ | |||
+ | public void setzeArt(String a) { | ||
+ | this.art = a; | ||
+ | } | ||
+ | public void setzeName(String n) { | ||
+ | this.name = n; | ||
+ | } | ||
+ | public void setzeAnzahlBeine(int ab) { | ||
+ | this.anzahlBeine = ab; | ||
+ | } | ||
+ | public void setzeHatFell(boolean hf) { | ||
+ | this.hatFell = hf; | ||
+ | } | ||
+ | |||
+ | public void schreibeDaten(){ | ||
+ | System.out.println(" | ||
+ | System.out.print(" | ||
+ | |||
+ | if(hatFell){ | ||
+ | System.out.println(" | ||
+ | } else { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||