Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen Attribute als Referenzvariablen Programme mit mehreren Klassen
Referenzvariablen Eine Referenzvariable ist eine Variable, die als Typ eine Klasse hat z.B. Punkt p = new Punkt(3,8); Referenzvariablen zeigen auf Objekte, sie enthalten nicht selber das Objekt (Synonyme: Zeiger, Referenzen, Speicheradressen, Namen, ...) Insbesondere können 2 Referenzvariablen auf dasselbe Objekt zeigen
Unterschied zu "einfachen" Variablen Referenzvariablen Punkt p1 = new Punkt(2,4); Punkt p2 = new Punkt(7,9); "einfache" Variablen int i = 7; int j = 4; i j p1 p2 7 4 Punkt(2,4) Punkt(7,9)
Unterschied zu "einfachen" Variablen Referenzvariablen Punkt p1 = new Punkt(2,4); Punkt p2 = new Punkt(7,9); p1 = p2; "einfache" Variablen int i = 7; int j = 4; i = j; i j p1 p2 4 4 Punkt(2,4) Punkt(7,9)
Unterschied zu "einfachen" Variablen Referenzvariablen Punkt p1 = new Punkt(2,4); Punkt p2 = new Punkt(7,9); p1 = p2; p2.verschiebe(44,33); "einfache" Variablen int i = 7; int j = 4; i = j; j = 77; i j p1 p2 4 77 Punkt(2,4) Punkt(51,42)
Unterschied zu "einfachen" Variablen Referenzvariablen Punkt p1 = new Punkt(2,4); Punkt p2 = new Punkt(7,9); p1 = p2; p2.verschiebe(44,33); //p1 ebenfalls verschoben "einfache" Variablen int i = 7; int j = 4; i = j; j = 77; //i ist weiterhin 4 i j p1 p2 4 77 Punkt(2,4) Punkt(51,42)
Attribute als Referenzvariablen Eine Klasse kann als Attribut eine Referenzvariable haben Beispiel: Klasse Dreieck hat als Attribute 3 Variablen der Klasse Punkt Beispiel aus Vorlesung "Diskrete Mathe": Klasse Liste hat Attribut weiter (Typ Liste) Bestandteilshierarchie (vgl. UML - Vorlesung GIS): Ein Objekt besteht aus anderen Objekten ==> Programme mit mehreren Klassen
Programme mit mehreren Klassen Eine Klasse kennt alle Klassen im selben Verzeichnis (Sie sind im selben Package,kommt später) Voraussetzungen: Klasse ist nicht protected Verzeichnis ist unmittelbar in Forte verbunden Genau eine Klasse pro Datei (Dateiname = Klassenname) Genau eine Klasse hat Methode main
Erzeugen von Klassen ohne main Explorer-Fenster von Forte mit Maus auf Aktuelles Verzeichnis rechte Maustaste -> New from Template - Classes - Class
Programme mit mehreren Klassen: Ausführen Im Explorer von Forte Klasse mit main markieren (Maus) Grünes Dreieck im Hauptfenster oder rechte Maustaste - Execute Vorsicht: andere Dateien (außer der markierten) werden nicht neu compiliert!
Programme mit mehreren Klassen: Compilieren Im Explorer von Forte übergeordnetes Verzeichnis markieren (mit Maus) rechte Maustaste - Compile oder Build Compile: Nur geänderte Dateien im Verzeichnis werden compiliert Build: Alle Dateien im Verzeichnis werden compiliert Compile/Build All: Auch in Unterverzeichnissen
Übungsaufgabe 6 Entwerfen Sie eine Klassendefinition für (einfache) Polygone mit beliebig vielen Stützpunkten. Als Methoden sollten mindestens die Umfangs- und Flächenberechnung sowie die Verschiebung zur Verfügung gestellt werden. Es soll sichergestellt werden können, dass die Polygone mathematisch korrekt sind. Erzeugen Sie ein Polygon und wenden Sie die definierten Methoden an.