Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Klassen 02 - Klassen.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Weitere Beispiele für Verzweigung mit und ohne Turtle
Informatikunterricht mit Java
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Objektorientiertes Konstruieren
Parameterübergabemechanismen für den Methodenaufruf
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Benutzeroberflächen und Graphik
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 03/041 Übungsaufgabe Ergänzt die Klasse Dreieck aus der Hausaufgabe um eine Methode,
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Java Programme nur ein bisschen objektorientiert.
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
Grundkurs Informatik 11-13
 Präsentation transkript:

Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen Attribute als Referenzvariablen Programme mit mehreren Klassen

Hausaufgabe 5: Dreieck class Dreieck {//Attribute Punkt A; Punkt B; Punkt C; //Konstruktor Dreieck(double xa, double ya, double xb, double yb, double xc, double yc) { A = new Punkt(xa , ya); B = new Punkt(xb , yb); C = new Punkt(xc , yc); } //Methoden void verschiebe(double dx, double dy) { A.verschiebe(dx, dy); B.verschiebe(dx, dy); C.verschiebe(dx, dy); void ausgabe() System.out.println(" "); System.out.println("Punkt A:"); A.ausgabe(); System.out.println(" "); System.out.println("Punkt B:"); B.ausgabe(); System.out.println(" "); System.out.println("Punkt C:"); C.ausgabe(); System.out.println(" "); double flaeche() { //Berechng. der Flaeche ueber die Determinante double flaeche = 0.5*(A.x*(B.y-C.y)+B.x*(C.y-A.y)+C.x*(A.y-B.y)); return flaeche;

Hausaufgabe 5: Trapez class Trapez { // Attribute Punkt A; Punkt B; Punkt C; Punkt D; //Konstruktor Trapez(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy) { A= new Punkt(ax,ay); B= new Punkt(bx,by); C= new Punkt(cx,cy); D= new Punkt(dx,dy); } // Methoden void verschiebe(double tx, double ty) { A.verschiebe(tx,ty); B.verschiebe(tx,ty); C.verschiebe(tx,ty); D.verschiebe(tx,ty); void ausgabe() { System.out.println(" "); System.out.println("Punkt A:"); A.ausgabe(); System.out.println(" "); System.out.println("Punkt B:"); B.ausgabe(); System.out.println(" "); System.out.println("Punkt C:"); C.ausgabe(); System.out.println(" "); System.out.println("Punkt D:"); D.ausgabe(); System.out.println(" "); double flaeche() { return 0.5*(((A.x-B.x)*(A.y+B.y))+((B.x-C.x)*(B.y+C.y))+ ((C.x-D.x)*(C.y+D.y))+((D.x-A.x)*(D.y+A.y))); //Berechnung d. Flaeche nach der Gauss'schen Flaechenformel //fuer Polygone

Hausaufgabe 5: Kreis class Kreis { //Attribute Punkt mitt; //Mittelpunkt double radius; //Konstruktor Kreis(double x_mitt, double y_mitt, double rad) { mitt = new Punkt_muenster(x_mitt, y_mitt); radius = rad; } //Methoden void verschiebe(double dx, double dy) { mitt.verschiebe(dx, dy); void ausgabe() { System.out.println(" "); System.out.println("Koordinaten des Mittelpunktes: "); mitt.ausgabe(); System.out.println(" "); System.out.println("Radius:"); System.out.println(radius); double flaeche() { return Math.PI*radius*radius;

Hausaufgabe 5: Ellipse class Ellipse { // Attribute Punkt mitt; double halbachse_a; double halbachse_b; // Konstruktor Ellipse(double x_mitt, double y_mitt, double rad_a, double rad_b) { mitt = new Punkt(x_mitt, y_mitt); halbachse_a = rad_a; halbachse_b = rad_b; } // Methoden void verschiebe(double dx, double dy) { mitt.verschiebe(dx, dy); void ausgabe() { System.out.println(" "); System.out.println("Mittelpunkt der Ellipse: "); System.out.println(mitt); System.out.println(" "); System.out.print("Halbachse a : "); System.out.println(halbachse_a); System.out.print("Halbachse b : "); System.out.println(halbachse_b); double flaeche() { return Math.PI*halbachse_a*halbachse_b;

Hausaufgabe 5: Punkt public class Punkt { double x; //x-Koordinate double y; //y-Koordinate /** Creates new Punkt */ public Punkt(double xstartwert, double ystartwert){ x = xstartwert; y = ystartwert; } public Punkt(Punkt p){ x = p.x; y = p.y; double abstand(Punkt p){ return Math.sqrt( Math.pow(p.x - x,2) + Math.pow(p.y - y,2) ); boolean gleich(Punkt p){ return x == p.x && y == p.y; void verschiebe (double dx, double dy) { x = x + dx; y = y + dy; void ausgabe() System.out.print("x = "); System.out.print(x); System.out.print(" , y = "); System.out.println(y); double flaeche() { return Math.PI*halbachse_a*halbachse_b;

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.