Einführung in die Programmierung mit Java

Slides:



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

Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
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 7. Vorlesung WS 2002/2003.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Abstrakte Klassen DVG
DVG Klassen und Objekte
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
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.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Parameterübergabemechanismen für den Methodenaufruf
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Programmiervorkurs WS 2014/15 Instanzmethoden
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 5. Vorlesung WS 2001/2002.
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
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. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
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
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Java Programme nur ein bisschen objektorientiert.
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
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
Implementieren von Klassen
 Präsentation transkript:

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

Ü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 - 1. Semester - WS 01/02

1. Übungsaufgabe vom 21. 11. 2001 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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

2. Übungsaufgabe vom 21. 11. 2001 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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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

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 - 1. Semester - WS 01/02

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

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 - 1. Semester - WS 01/02

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 - 1. Semester - WS 01/02

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

Ü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 - 1. Semester - WS 01/02