Parameterübergabemechanismen für den Methodenaufruf
|
|
- Luisa Huber
- vor 5 Jahren
- Abrufe
Transkript
1 Methode, griech. der Weg zu etwas, planmäßiges Verfahren -Brockhaus Parameterübergabemechanismen für den Methodenaufruf Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08
2 2 Ziele Wiederholung der wichtigsten Begriffe bei Klassen Verstehen des Parameterübergabebegriffs von Java Verstehen der Unterschiede zwischen Call-by-Value und Call-by-Reference
3 3 public class Point { private int x,y; Klasse Point Attribut (engl. field) Konstruktor (dient zur Erzeugung von Objekten der Klasse Point) public Point(int x0, int y0) { this.x = x0; this.y = y0; public void move(int dx, int dy) { this.x = this.x + dx; this.y = this.y + dy; public int getx() { return this.x; public int gety() { return this.y; Methode
4 4 public class Point { private int x,y; Klasse Point vordefinierte lokale Variable this bezeichnet das gerade betrachtete Objekt public Point(int x0, int y0) { this.x = x0; this.y = y0; public void move(int dx, int dy) { this.x = this.x + dx; this.y = this.y + dy; public int getx() { return this.x; public int gety() { return this.y; Instanzvariable
5 5 UML ist die de facto Standard- Modellierungssprache im Software Engineering UML wurde entwickelt von Grady Booch, Jim Rumbaugh (OMT), Ivar Jacobson (OOSE),... UML enthält unterschiedliche Diagrammtypen zur Beschreibung der statischen Struktur und des dynamischen Verhaltens von Softwaresystemen. Wichtige Diagrammtypen sind Klassendiagramme Sequenzdiagramme Aktivitätsdiagramme Zustandsübergangsdiagramme (State Machines) UML: Geschichtliche Entwicklung
6 UML im Software-Entwicklungsprozess 6
7 Software-Entwicklungsprozess Software-Entwicklung ist ein iterativer Prozess, der folgende Phasen durchläuft: Projektdefinition Analyse Entwurf Implementierung Betrieb und Wartung In dieser Einführungsvorlesung beschäftigen wir uns hauptsächlich mit Implementierung und Entwurf (kleiner) Programme Weiterführende Vorlesungen: Objekt-orientierte Software-Entwicklung Methoden des Software Engineering 7
8 8 Modellierung in UML UML Klassendiagramme dienen zur Modellierung von Klassen und ihrer Beziehungen untereinander (siehe später) Für Klassen werden angegeben der Klassenname, die Attribute und Methoden. Da Konstruktoren Standardnamen besitzen, werden sie meist NICHT explizit angegeben. Beispiel: Point Point - für private -int x -int y + für public +void move (int dx, int dy) +int getx () +int gety ()
9 9 Verwendung von Konstruktoren Ein neues Objekt der Klasse Point mit den Anfangswerten a, b wird erzeugt durch den Ausdruck new Point(a, b); Beispiel: Point p = new Point(5, 7); legt im Keller die lokale Variable p an und erzeugt auf der Halde ein neues Point-Objekt mit den Koordinaten 5, 7. i p 3 x = 5 y = 7
10 10 Methodendeklaration Eine Methodendeklaration hat die Form: Ergebnistyp formaler Parameter public type methodname(params) {body Kopf der Methode Rumpf der Methode Beispiel: public void move(int dx, int dy) { this.x = this.x + dx; this.y = this.y + dy;
11 11 Methodenaufruf: Verwendung von Methoden Ein Methodenaufruf hat die Form o.m(a 1, a 2 ); Beispiel: p.move(10, 10); aktuelle Parameter Es gibt verschiedene Techniken zur Ausführung eines Methodenaufrufs: Wertübergabe (Call by Value) Adressübergabe (Call by Reference) Java verwendet Call by Value.
12 12 Call-by-Value-Parameterübergabe Call-by-Value Sei gegeben Methodendeklaration: Aufruf: o.m(a 1, a 2 ); void m (D x 1, int x 2 ) {Rumpf 1. Schritt: Berechne die Werte o 1, v 1, v 2 der aktuellen Parameter o, a 1, a 2 und weise diese Werte dem impliziten Parameter this und den formalen Parametern x 1, x 2 zu, die als lokale Variablen des Rumpfs verwendet werden. 2. Schritt: Werte den Rumpf von m aus. formale Parameter aktuelle Parameter 3. Schritt: Bei Beendigung der Auswertung des Rumpfs werden die lokalen Variablen this, x 1, x 2 gelöscht (durch Zurücksetzung des Top-Zeigers des Laufzeitkellerspeichers).
13 13 Call-by-Value-Parameterübergabe Beispiel: int i = 2; Point p = new Point(1,1); // (1) p.move(i, 2+2); // (2)
14 14 Call-by-Value-Parameterübergabe: Beispiel Zum Zeitpunkt (1) habe der Speicher die i 2 x = 1 p y = 1 Adresse von p auf der Halde Beim Aufruf werden drei lokale Variablen angelegt, die Werte von p ), i (= 2) und 2+2 (= 4 im Bsp.) berechnet und die Initialisierungen this dx = 2; dy = 4; mit diesen Werten ausgeführt: i p this dx dy x = 1 y = 1
15 15 Call-by-Value-Parameterübergabe: Beispiel Dann wird der Rumpf this.x = this.x + dx; this.y = this.y + dy; ausgeführt: i p this dx dy x = 3 y = 5 Zum Zeitpunkt (2) sind die lokalen Variablen this, dx und dy des Blocks wieder gelöscht: i 2 x = 3 p y = 5
16 16 Beispiel: Call-by-Value mit Objektparameter Erweitere die Klasse Point (zu einer Klasse PointClr mit Test PointClrMain) um die Methode movenclear, die das aktuelle Objekt um die Koordinaten von q verschiebt und dann q auf den Ursprung setzt. public void movenclear (Point q) { int dx = q.getx(); int dy = q.gety(); this.move(dx, dy); q.move(-dx, -dy);
17 17 Call-by-Value mit Objektparameter Aufruf p1.movenclear(q1); mit p1 q1 x = 1 y = 2 x = 3 y = 3 Schritt 1: Übergabe der aktuellen Parameter an this, q x = 1 p1 q1 this y = 2 x = 3 y = 3 q
18 18 Call-by-Value mit Objektparameter Aufruf p1.movenclear(q1)mit p1 q1 x = 1 y = 2 x = 3 y = 3 Schritt 1: Übergabe der aktuellen Parameter an this, q p1 x = 1 q1 y = 2 this q dx dy 3 3 x = 3 y = 3
19 19 Call-by-Value mit Objektparameter Schritt 2: Ausführung des Rumpfs a) Berechnung von int dx = q.getx(); int dy = q.gety(); ergibt x = 1 p1 q1 this y = 2 x = 3 y = 3 q dx dy 3 3
20 20 Call-by-Value mit Objektparameter Schritt 2: Ausführung des Rumpfs b) Aufruf von this.move(dx, dy); legt im Keller neue lokale Variablen für die formalen Parameter von move an, die am Ende der Ausführung von this.move(dx, dy); wieder gelöscht werden. Impliziter Parameter von p1.movenclear(q1); = aktueller Parameter von this.move(dx, dy); Impliziter Parameter von this.move (dx,dy); p1 q1 this q dx dy this dx dy 3 x = 1 y = 2 x = 3 y = 3
21 21 Call-by-Value mit Objektparameter Schritt 2: Ausführung des Rumpfs c) Berechnung von this.move(dx, dy); q.move(-dx, -dy); ergibt x = 4 p1 q1 this y = 5 x = 0 y = 0 q dx dy 3 3
22 22 Call-by-Value mit Objektparameter Schritt 3: Nach Beendigung der Ausführung des Rumpfs: Löschen der lokalen Variablen this, q. x = 4 p1 q1 y = 5 x = 0 y = 0
23 23 Call-by-Value-Parameterübergabe Folgerung Da bei Call-by-Value die Werte der aktuellen Parameter an lokale Variablen (des Rumpfs) übergeben werden, die aktuellen Parameter aber selbst unangetastet bleiben, ändern sich die Werte der aktuellen Parameter nicht. Es können aber die Werte der Instanzvariablen eines aktuellen Parameters (vom Objekttyp) verändert werden.
24 24 Call-by-Value und Call-by-Reference In anderen Programmiersprachen (wie C++, Ada, C,...) gibt es neben Call-by-Value auch den Parameterübergabemechanismus Call-by- Reference (Adressübergabe). Gegeben sei eine Methodendeklaration type m(t &x) {body // nicht in Java! und ein Aufruf o.m(p); Referenz auf einen Wert von T
25 25 Call-by-Reference Schritt 1: Übergabe des Werts von o an this und der Adresse von p an x Schritt 2: Ausführung von body. Änderungen von x werden unter der Adresse von p gespeichert, d.h. direkt am aktuellen Parameter ausgeführt. Schritt 3: Am Ende werden this und x gelöscht. Änderung des Werts von p möglich
26 26 Beispiel: choose Call-by-Reference Wähle Punkt mit der größeren y-koordinate Call-by-Value für this und q. Bei der Ausführung werden Änderungen von higherpoint unter der Adresse des aktuellen Parameters gespeichert. public void choose(point q, Point &higherpoint) { if (this.gety() >= q.gety()) higherpoint = this; else higherpoint = q; //(2) public static void main(string[] args) { Point p1 = new Point(1,1); Point q1 = new Point(2,2); Point r; // (1) p1.choose(q1, r); // (3)... Call-by-Reference: higherpoint wird als Referenz (auf einen Zeiger auf Point) übergeben.
27 27 Call-by-Reference Im Zeitpunkt (1) gilt folgender Speicherzustand: x = 1 p1 q1 r null y = 1 x = 2 y = 2
28 28 Call-by-Reference Bei der Parameterübergabe wird für den Call-by-Reference-Parameter higherpoint die Adresse des aktuellen Parameters r übergeben: Call-by-Value: Übergabe der Werte von p1, q1 an this und q p1 q1 r null x = 1 y = 1 x = 2 y = 2 this q higherpoint Call-by-Reference: Übergabe der Adresse von r an higherpoint
29 29 Call-by-Reference Während der Ausführung des Rumpfs (Zeitpunkt 2) wird bei der Zuweisung an higherpoint die Änderung an der Adresse des aktuellen Parameters r durchgeführt: : Ausführung von *higherpoint=q; ändert den Wert von r p1 q1 r x = 1 y = 1 x = 2 y = 2 this q higherpoint Call-by-Reference: Übergabe der Adresse von r an higherpoint
30 30 Call-by-Reference Im Zeitpunkt (3) werden die lokalen Variablen gelöscht und man erhält man wegen Call-by-Reference eine Änderung des aktuellen Parameters: r ist nicht mehr null, sondern zeigt auf ein anderes Objekt. x = 1 p1 q1 r y = 1 x = 2 y = 2 r zeigt auf den Punkt mit der größeren y-koordinate!
31 31 Call-by-Value (Java) Beispiel: Das (fast) gleiche Programm in Java mit Call-by-Value für higherpoint public void choose(point q, Point higherpoint) { if (this.gety() >= q.gety()) higherpoint = this; else higherpoint = q; //(2) Call-by-Value public static void main(string[] args) //siehe PointChoose0Main { Point p1 = new Point(1,1); Point q1 = new Point(2,2); Point r = new Point(); // (1) p1.choose(q1, r); // (3)... Initialisierung von r mit Standardkonstruktor
32 32 Call-by-Value (Java) Zu Beginn der Ausführung des Rumpfs von p1.choose(q1, r): p1 q1 r x = 1 y = 1 this q higherpoint x = 0 x = 2 y = 2 y = 0
33 33 Call-by-Value (Java) Zeitpunkt (2): Fallunterscheidung bewirkt eine Änderung der lokalen Variablen higherpoint. p1 q1 r x = 1 y = 1 this q higherpoint x = 0 x = 2 y = 2 y = 0
34 34 Call-by-Value (Java) Zum Zeitpunkt (3) haben sich also bei Call-by-Value die aktuellen Parameter nicht geändert: p1 q1 r x = 1 y = 1 x = 0 y = 0 x = 2 y = 2
35 35 Call-by-Value (Java) Um den gleichen Effekt wie bei Call-by-Reference zu erzielen, führt man in Java ein Ergebnis ein (siehe PointChoose1 und PointChoose1Main): public Point choosejava(point q) { if (this.gety() >= q.gety()) return this; else return q; //(2) public static void main(string[] args) { Point p1 = new Point(1,1); Point q1 = new Point(2,2); // (1) Point r = p1.choosejava(q1); // (3) Zum Zeitpunkt (3) ergibt sich jetzt der gewünschte Speicherzustand, bei dem r auf das gleiche Objekt zeigt, wie q1.
36 36 Zusammenfassung Eine Methode berechnet ihr Resultat abhängig vom Zustand des aktuellen Objekts und der aktuellen expliziten Parameter. Der Parameterübergabemechanismus von Java ist Call-by-Value. Dabei werden die Werte der aktuellen Parameter an die formalen Parameter übergeben. Die Werte der aktuellen Parameter werden durch Call-by-Value nicht verändert; es können aber die Attributwerte der aktuellen Parameter verändert werden. Bei Call-by-Reference (wie in C, C++, Modula möglich) können die Werte der aktuellen Parameter verändert werden, da ihre Adressen (die L-Werte) übergeben werden. Java hat kein Call-by-Reference; es lassen sich aber durch Call-by-Value bei Objekten ähnliche Effekte und Speicherplatzersparnis erzielen.
Variablen in Java. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang. Ziele
Variablen in Java Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 11/04 2 Ziele Unterschiedliche Arten von Variablen in Java verstehen Bestimmen von Gültigkeitsbereich
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 5. Objekte und Klassen 1
Kapitel 5 Objekte und Klassen Objekte und Klassen 1 Ziele Grundbegriffe objektorientierter Programmierung kennenlernen Klassen in Java deklarieren können Das Speichermodell für Objekte verstehen Typen,
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 5. Objekte und Klassen 1
Kapitel 5 Objekte und Klassen Objekte und Klassen 1 Ziele Grundbegriffe objektorientierter Programmierung kennenlernen Klassen in Java deklarieren können Das Speichermodell für Objekte verstehen Typen,
Kapitel 6. Kontrollstrukturen im Kontext von Klassen und Objekten
Kapitel 6 Kontrollstrukturen im Kontext von Klassen und Objekten Kontrollstrukturen im Kontext von Klassen und Objekten 1 Ziele Anweisungen auf den Kontext von Klassen und Objekten erweitern Insbesondere
Kapitel 6. Kontrollstrukturen im Kontext von Klassen und Objekten
Kapitel 6 Kontrollstrukturen im Kontext von Klassen und Objekten Kontrollstrukturen im Kontext von Klassen und Objekten 1 Ziele Anweisungen auf den Kontext von Klassen und Objekten erweitern Insbesondere
Kapitel 5: Objekte und Klassen
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 5: Objekte und Klassen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische Informatik
Kapitel 6. Kontrollstrukturen und Methoden im Kontext von Klassendeklarationen
Kapitel 6 Kontrollstrukturen und Methoden im Kontext von Klassendeklarationen Objekte und Klassen 1 Ziele Anweisungen auf den Kontext von Klassendeklarationen erweitern Statische Attribute und Methoden
2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
6. Funktionen, Parameterübergabe
6. Funktionen, Parameterübergabe GPS-6-1 Themen dieses Kapitels: Begriffe zu Funktionen und Aufrufen Parameterübergabearten call-by-value, call-by-reference, call-by-value-and-result in verschiedenen Sprachen
Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08
Betreutes Arbeiten Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) 375 Wiederholung Klasse: class Klassenname { konzeptuelle Einheit der Modellierungsdomäne kapselt Daten und Operationen
Klassen mit Instanzmethoden
Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07
Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 492
Überblick 6. Grundlagen der objektorientierten Programmierung 6.1 Abstrakte Datentypen: von Structures zu Klassen 6.2 Das objektorientierte Paradigma 6.3 Peer Kröger (LMU München) Einführung in die Programmierung
Vererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
Objektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
EWS, WS 2016/17 Pfahler I-1
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler Funktionen EWS, WS 2016/17 Pfahler I-1 Funktionen Funktion: Rechenvorschrift mit einem Namen und ggf. formalen Parametern,
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
Musterübung 09: Vererbung und Dynamische Bindung
Musterübung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Hofer) G4 (Angerer) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben
Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
Vererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
6 Speicherorganisation
6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
Einstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
Einstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
Einführung in die Programmierung für NF. Klassen und Objekte
Einführung in die Programmierung für NF Klassen und Objekte OBJEKTORIENTIERTE PROGRAMMIERUNG 5 Klassen und Objekte 2 Objektorien=erte Programmierung In der objektorien=erten Programmierung werden Daten
2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)
2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg
Programmieren I. Kapitel 12. Referenzen
Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
Grundlagen der Objektorientierten Programmierung - Methoden -
Methoden In ihrem formalen Aufbau entsprechen Java-Methoden den Funktionen in C und C++. Eine Methode dient dazu, eine häufig benötigte Folge von Anweisungen unter einem Namen zusammenzufassen und zum
Programmieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Spezial Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe bei primitivem Datentypen (Wertkopie) public class MethodParameters
6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
pue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
Objektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Programmiertechnik Klassenmethoden
Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Programm zur Berechung von public class Eval1 { public static void main(string[] args) { java.util.scanner
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
Algorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
C++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
Java Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 5. Objekte und Klassen 1
Kapitel 5 Objekte und Klassen Objekte und Klassen 1 Ziele Grundbegriffe objektorientierter Programmierung kennenlernen Klassen in Java deklarieren können Das Speichermodell für Objekte verstehen Typen,
Elementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Programmieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Special Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe: Wertkopie -By- public class MethodParameters { public
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Klassenmethoden
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Klassenmethoden Motivation Programm zur Berechnung von public class Eval1 { public static void main(string[] args) { java.util.scanner
Einstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Objektorientes Design & Programm
Objektorientes Design & Programm Ziele Motivation für OO-Design Softwarekomponenten mit Objektbeschreibungen Klassen und Objekte Konstruktoren zum Erzeugen von Objekten Motivation Vermischung von Variablendeklarationen
Tag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Tag 7 Repetitorium Informatik (Java)
Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
Aufrufe von Objektmethoden
Aufrufe von Objektmethoden SWE-35 Objektmethoden werden für ein bestimmtes Objekt aufgerufen; sie benutzen dessen Objektvariablen: double r = big.getradius (); Methodenaufrufe können auch die Werte von
Umsetzung einer Klassenkarte in einer Programmiersprache
Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,
Einstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
Java für Anfänger Teil 7: Methoden. Programmierkurs Manfred Jackel
Java für Anfänger Teil 7: Methoden Programmierkurs 11.-15.10.2010 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]
! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 5. Objekte und Klassen 1
Kapitel 5 Objekte und Klassen Objekte und Klassen 1 Ziele Grundbegriffe objektorientierter Programmierung kennenlernen Klassen in Java deklarieren können Das Speichermodell für Objekte verstehen Typen,
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2017/18 Institut für Informatik Übungsblatt 6 Prof. Dr. R. Hennicker, P. Wendler Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Programmierkurs. Manfred Jackel
Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]
UML (Unified Modelling Language) von Christian Bartl
UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) Übungsorganisation Bringen Sie Ihren Labtop in die Übungen mit! 09.10.2017 CuP - VO 2 Programmieren 1. Definition der Aufgabe, die das Programm lösen soll. 2.
Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);
Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4
Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der
Allgemeines - Prinzipien
OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen
12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Java Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
Praktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Was bisher geschah... Konzepte: Klassen und ihre...... Instanzen, die
Intuitive Einführung. Informatik B Objektorientierte Programmierung in Java. Vorlesung 01: Objektorientierte Programmierung (Teil 1)
Universität Osnabrück 1 3 Objektorientierte Programmierung in Java Klasse Objekt Attribut Operation Botschaft Vererbung Assoziation Vorlesung 01: Objektorientierte Programmierung (Teil 1) SS 2004 Prof.
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen
6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -108 Kapitel 5: Arrays Einführung Ein Array ist eine Reihung gleichartiger Objekte. a: a[0] a[1] a[2] a[3] a[n 1] Bezeichner a steht
Erste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
Informatik II Übung 5
Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013
Theorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
Objektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie