IV Interaktion 04 Felder Ein elektronischer Buchladen Die Klasse Buch Welche Attribute sollte diese Klasse haben? Unser Bücherregal Welche Attribute und welche Methoden sind hier sinnvoll? Die Umsetzung und ihre Tücken public class Buecherregal { private Buch buch1; private Buch buch2; private Buch buch3; private Buch buch4; ... public Buecherregal() { buch1 = new Buch(); buch2 = new Buch(); buch3 = new Buch(); buch4 = new Buch(); ... } ... } Was mache ich bei 100 Büchern? Lösung: Wir brauchen Arrays! Aber was ist das? Beispiel mit ganzen Zahlen: eine Integervariable int zahl; zahl = 41; ein Array von Integervariablen int[] zahlen; zahlen[0] = 23; zahlen[1] = 19; zahlen[2] = 33; 04 Felder: Beispiel1 public class Beispiel1 { private int[] zahlen; public Beispiel1() { zahlen = new int[7]; } public void zahlenEintragen() { zahlen[0] = 3; zahlen[1] = 2; zahlen[2] = 7; zahlen[3] = 9; zahlen[4] = 1; zahlen[5] = 7; zahlen[6] = 13; } Ein Array ist ein Objekt! public class Beispiel1 { private int[] zahlen; public Beispiel1() { zahlen = new int[7]; } … 1. Eine Referenz auf ein int-Array deklarieren! 2. Hier wird das int[ ] – Objekt erzeugt und festgelegt, dass es 7 Zahlen aufnehmen kann. Werte eintragen public void zahlenEintragen() { zahlen[0] = 3; zahlen[1] = 2; zahlen[2] = 7; zahlen[3] = 9; zahlen[4] = 1; zahlen[5] = 7; zahlen[6] = 13; } Ausprobieren! Erstelle ein Objekt der Klasse Beispiel1. Inspiziere die Attribute dieses Objekts. Führe die Methode Werte eintragen aus. Inspiziere noch einmal. Ja und? Welchen Vorteil hat das? Erstelle ein Objekt der Klasse Beispiel2 Führe die Methoden aus. Was passiert? Schau in den Quelltext. Kannst du ihn erklären? Aufgaben Speichere die ersten 100 Quadratzahlen in einem Array und lasse sie ausgeben. Buch S. 68/1 Temperaturmessung Tipp: Zufallszahlen siehe Beispiel2! Temperaturmessung Buch S. 68/1 Steffi will ein Jahr lang jeden Tag um 15 Uhr die Temperatur auf ihrem Balkon messen und die Ergebnisse auswerten. Dazu definiert sie eine Klasse Tempmessung. a) Lege ein Feld temperatur an, welches die reellen Werte für jeden Tag eines Jahres aufnehmen kann. Definiere eine Methode, um das Feld mit zufälligen Temperaturwerten zu belegen. b) Nach genau einem Jahr sollen mithilfe dreier Methoden der Tag mit dem höchsten Temperturwert, die niedrigste gemessene Temperatur und der Durchschnittwert aller Messwert bestimmt werden. Implementiere geeignete Methoden. Erweiterung der Temperaturmessung Bereits im Konstruktor sollen die zufälligen Temperaturwerte erzeugt werden. Bei Erzeugung des Temperaturmessungs-Objekts soll der Zeitraum in Tagen festgelegt werden. Welche Methoden müssen angepasst werden? Führe die Änderungen durch! Es muss nicht nur der Konstruktor angepasst werden! private double[] temperatur; public Tempmessung2(int anzahl) { temperatur = new double[anzahl]; tempWerteErzeugen(); } public void tempWerteErzeugen() { for (int i=0;i < 365; i++) { temperatur[i]= 50* Math.random() - 20; } } Lösung: Das Attribut length Jedes Feld hat ein Attribut length, das die Länge des Feldes angibt! public void tempWerteErzeugen() { for (int i=0;i < temperatur.length; i++) { temperatur[i]= 50* Math.random() - 20; } } Die Klasse Würfel Das Attribut max gibt die größte Zahl an, die mit diesem Würfel geworfen werden kann. Die Methode wuerfeln() liefert ein Würfelergebnis zurück. Klasse Würfeltest Es soll nun oft gewürfelt werden. Die Wurfergebnisse werden im Feld test festgehalten und ausgegeben. So könnte die Ausgabe aussehen: Anforderungen: Bei der Erzeugung des Würfeltestobjekts soll angegeben werden können, ob es sich um einen 4seitigen, 6-seitigen, … Würfel handelt. Bei der testen()-Methode soll als Parameter übergeben werden, wie oft gewürfelt wird. Es soll die absolute Häufigkeit und die relative Häufigkeit angegeben werden! Varianten: Erstelle weitere Würfelklassen mit folgenden extras: gezinkter Würfel die Ergebnisse sind nicht gleich wahrscheinlich SummeVonZwei Es werden zwei Würfel geworfen und die Summe der Augenzahlen zurückgegeben. Teste diese Würfel ebenfalls! Zusammenfassung: Schreibe (mit Stift und Papier!) auf, welche Schritte nötig sind, um ein Feld(array) zu erzeugen. Beschränke dich auf ein Feld, das primitive Datentypen wie int oder double speichert. Zurück zum Bücherregal Ändere die Klasse Buecherregal: Verwende ein Feld, um den ganzen Buchbestand zu speichern. public class Buecherregal { private private private private ... Buch Buch Buch Buch buch1; buch2; buch3; buch4; public Buecherregal() { buch1 = new Buch(); buch2 = new Buch(); buch3 = new Buch(); buch4 = new Buch(); ... } ... } Wenn man statt Zahlen Bücher speichern möchte… public class Beispiel1 { private int[] zahlen; public Beispiel1() { zahlen = new int[7]; } public void zahlenEintragen() { zahlen[0] = 3; zahlen[1] = 2; zahlen[2] = 7; zahlen[3] = 9; zahlen[4] = 1; zahlen[5] = 7; zahlen[6] = 13; } Was muss alles geändert werden? Anforderungen: Erstelle eine Klasse Buch, in der der Titel und der Autor eines Buches gespeichert werden kann. Erstelle ein Feld, in dem 100 Bücher gespeichert werden können. Fülle dieses Feld mit 10 Büchern. Gib den Buchbestand aus. Viele Roboter Als Vorlage erhältst du das Karolprojekt, bei dem zwei Roboter um die Wette laufen. Baue dieses Programm um! Es sollen bis zu 5 Karols unterstützt werden, die in einem Feld gespeichert werden. Wie müssen die Methoden marsch() und wettlauf() umgeschrieben werden?
© Copyright 2024 ExpyDoc