Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in die Programmierung mit Java

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in die Programmierung mit Java"—  Präsentation transkript:

1 Einführung in die Programmierung mit Java
Vorläufige Version! fehlende Folien werden noch nachgereicht Einführung in die Programmierung mit Java 6. Vorlesung WS 2001/2002

2 Übersicht Besprechung der Übungsaufgabe Referenzvariablen
Methoden im Detail Parameterübergabe Lokale Variablen Konstruktoren Klassen aus verschiedenen Dateien verwenden T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

3 1. Übungsaufgabe vom 1. Entwerfen und Implementieren Sie analog zur Definition von Rechtecken die Klassendefinitionen für Dreiecke, Kreise, Ellipsen und Trapeze. Als Methoden sollten mindestens die Flächenberechnung und die textuelle Ausgabe der Variableninhalte zur Verfügung gestellt werden. Lösungsansatz: Wiederverwendung großer Teile der Klasse Rechteck. T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

4 Lösung zur 1. Aufgabe: Ausgangspunkt ist die Klasse Rechteck
Diese Stellen müssen für die Erstellung der Klassen Dreieck, Kreis etc. angepasst werden. class Rechteck { double breite, höhe; // Instanzvariablen (jedes Objekt der Klasse // Rechteck hat jeweils eigene Variablen) // Methode zur Berechnung des Flächeninhalts double fläche () { // keine Parameter; Rückgabewert vom Typ double double flächeninhalt; // lokale Variable (ex. nur in der Methode) flächeninhalt=breite*höhe; // Berechnung anhand der Instanzvariablen return flächeninhalt; // Rückgabe des berechneten Wertes } // Methode zur Ausgabe des Objekts (als Text) void ausgeben() { // keine Parameter; kein Rückgabewert System.out.println("Dieses Rechteck hat folgende Eigenschaften:"); System.out.print("Breite: "); System.out.println(breite); System.out.print("Höhe: "); System.out.println(höhe); System.out.print("Fläche: "); System.out.println(fläche()); // hier steckt ein Methodenaufruf! T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

5 Lösung zur 1. Aufgabe: Klasse Kreis
class Kreis { double radius; // Instanzvariable (jedes Objekt der Klasse // Rechteck hat jeweils eine eigene Variable) // Methode zur Berechnung des Flächeninhalts double fläche () { // keine Parameter; Rückgabewert vom Typ double double flächeninhalt; // lokale Variable (ex. nur in der Methode) flächeninhalt=Math.PI*radius*radius; return flächeninhalt; // Rückgabe des berechneten Wertes } // Methode zur Ausgabe des Objekts (als Text) void ausgeben() { // keine Parameter; kein Rückgabewert System.out.println("Dieser Kreis hat folgende Eigenschaften:"); System.out.print("Radius: "); System.out.println(radius); System.out.print("Fläche: "); System.out.println(fläche()); // hier steckt ein Methodenaufruf! T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

6 2. Übungsaufgabe vom 2. Entwerfen Sie die Klasse Student, die alle zur Verwaltung eines Studentenregisters wesentlichen Informationen beinhaltet. a) Welche Methoden können Sie sich dazu vorstellen? b) Welche Informationen (Variablen & Methoden) sind auch auf Dozenten oder Verwaltungsangestellte anwendbar? T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

7 Wdh.: Klassen und Objekte
Klassen definieren allgemeine Eigenschaften (z.B. Definition geometrischer Figuren oder den Bauplan für ein Haus) Von einer Klasse können Objekte (Instanzen) erzeugt werden (konkrete Ausprägung einer Klasse, z.B.: Rechteck mit Seitenlängen 10 und 7.5; oder das Beethoven-Haus) T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

8 Referenzvariablen Bisher: normale Variablen radius 2.7
Stehen als Platzhalter für Werte Normale Variable beinhaltet ihren Wert radius 2.7 T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

9 Referenzvariablen Bisher: normale Variablen
Stehen als Platzhalter für Werte Normale Variable beinhaltet ihren Wert Referenzvariablen zeigen auf Objekte; sie enthalten nicht selber das Objekt radius 2.7 kreis1 ? Instanz von Kreis radius 2.7 T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

10 Referenzvariablen Bisher: normale Variablen
Stehen als Platzhalter für Werte Normale Variable beinhaltet ihren Wert Referenzvariablen zeigen auf Objekte; sie enthalten nicht selber das Objekt Referenzvariablen, die auf kein konkretes Objekt verweisen, sollte der Wert null zugewiesen werden (z.B. direkt bei der Deklaration) Beispiel: Kreis kreis2 = null; radius 2.7 kreis1 ? Instanz von Kreis radius 2.7 kreis2 T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

11 Referenzvariablen - Beispiel
Fazit: Zum Kopieren von Objekten oder Erzeugen neuer Objekte reicht es nicht, die Referenzen zu kopieren Zum Vergleich zweier unterschiedlicher Objekte reicht es nicht auf Gleichheit der Referenzen zu prüfen Deklaration zweier Referenzvariablen Beispiel: Kreis kreis1, kreis2; kreis1 = new Kreis(); kreis1.radius = 1.0; kreis2 = kreis1; kreis2.radius = 2.5; kreis1.ausgeben(); Neuer Wert für Instanzvariable, da kreis2 und kreis1 dasselbe Objekte bezeichnen!!! Instantiierung eines Objekts Initialisierung der Instanzvariablen Kopieren der Referenz (nicht des Objekts!!!) Ausgabe: Kreis hat Radius 2.5 Instanz von Kreis radius ? kreis1 ? 2.5 1.0 kreis2 ? T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

12 Methoden im Detail T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

13 Methoden - Lokale Variablen
Variablen, die innerhalb von Methoden deklariert werden heißen lokale Variablen. Lokale Variablen werden bei jedem Aufruf einer Methode neu angelegt und existieren nur für die Zeitdauer der Abarbeitung der Methode. Im Gegensatz: Die evtl. innerhalb einer Methode erzeugten Objekte bestehen fort über die Methodenabarbeitung hinaus. Aber: sollten alle Referenzen auf neue Objekte entfallen, weil am Ende einer Methode alle lokalen Referenzvariablen Aufhören zu existieren, so werden auch diese Objekte gelöscht. T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

14 Methoden - Parameterübergabe
Definition der Parameterliste Formale Parameter Aktuelle Parameter Rückgabewerte T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

15 Konstruktoren (I) Konstruktoren sind spezielle Methoden, die implizit bei der Erzeugung von Objekten aufgerufen werden Zweck: Initialisierungen (u.a. von Instanzvariablen) Methodenname entspricht dem Klassennamen keine Angabe des Rückgabewerts Beispiel: Konstruktor für die Klasse Kreis Kreis(double r) { radius = r; } T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

16 Konstruktoren (II) Aufruf von Konstruktoren geschieht automatisch bei der Instantiierung von Objekten Beispiel: Kreis kreis1; kreis1 = new Kreis(3.5); Wird kein Konstruktor definiert, so verwendet Java den voreingestellten eingebauten Standardkonstruktor Aufruf mit leerer Parameterliste: kreis1 = new Kreis(); Anmerkung zu Forté: Bei der Neuerstellung einer Klasse in Forté wird automatisch das Gerüst für einen Konstruktor mitgeneriert. T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

17 Programme mit mehreren Klassen
T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02

18 Übungsaufgabe Verbinden Sie die beiden Programme „Autsch“ und „Textuelle Zahlenausgabe“ der 3. bzw. 5. Vorlesung. Entwickeln Sie dazu zwei Klassen in eigenen Dateien: Die Klasse „Zahlenobjekt“ soll Objekte für ganzzahlige Zahlen zwischen 0 und 999 bereitstellen. Die textuelle Ausgabe soll über eine Methode aufrufbar sein. Die Klasse „Autsch“ soll anstelle einer int-Zahl und der Methode System.out.print auf die Klasse „Zahlenobjekt“ zurückgreifen. T. H. Kolbe - Einführung in die Programmierung mit Java Semester - WS 01/02


Herunterladen ppt "Einführung in die Programmierung mit Java"

Ähnliche Präsentationen


Google-Anzeigen