2.11 Objektorientierung
|
|
- Lucas Kalb
- vor 6 Jahren
- Abrufe
Transkript
1 2.11 Objektorientierung Bisher: Nichtgleichartige Elemente (=Daten) können in Klassen zu einem neuen Typ zusammengefasst werden. Daten existieren oft zusammen mit Methoden, die auf die Daten zugreifen und sie manipulieren. Daher: Daten und die auf sie zugreifenden Methoden können in Klassen zusammengefasst werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 222
2 Methoden in Klassen Beispiel: (Kontorechnung einer Bank) Daten: Kontoinhaber Adresse des Kontoinhabers Kontonummer Kontostand Liste von Kontenbewegungen Methoden: Kontostand abfragen Einzahlung vornehmen Überweisung tätigen Kontoauszug drucken Java erlaubt die Zusammenfassung der Daten und der Methoden in einer Klasse. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 223
3 Beispiel: (rationale Zahlen) Wir stellen rationale Zahlen durch einen ganzzahligen Zähler und einen ganzzahligen Nenner dar: class Fraction { int z; // Zähler int n; // Nenner } /* end of Fraction */ Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 224
4 Beispiel: (rationale Zahlen) Wir stellen rationale Zahlen durch einen ganzzahligen Zähler und einen ganzzahligen Nenner dar: class Fraction { int z; // Zähler int n; // Nenner void add(fraction f) { z = z*f.n + f.z*n; n = n*f.n; } /* end of add */... } /* end of Fraction */ Zusätzlich zu den Daten enthält die Klasse auch noch Methoden, die die Daten manipulieren. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 224
5 Beispiel: (rationale Zahlen) Wir stellen rationale Zahlen durch einen ganzzahligen Zähler und einen ganzzahligen Nenner dar: class Fraction { int z; // Zähler int n; // Nenner void add(fraction f) { z = z*f.n + f.z*n; n = n*f.n; } /* end of add */ void subtract(fraction f) { z = z*f.n - f.z*n; n = n*f.n; } /* end of subtract */ void multiply(fraction f) { z = z*f.z; n = n*f.n; } /* end of multiply */ void divide(fraction f) { int h = z*f.n; n = n*f.z; z = h; } /* end of divide */ } /* end of Fraction */ Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 224
6 Das Objekt this Die Methoden add, subtract,multiply und divide sind ohne das Schlüsselwort static deklariert worden. Daher beziehen sie sich auf ein Objekt der Klasse und nicht auf die Klasse selbst (wie wir es bisher nur kennengelernt haben). Das Objekt, auf das eine Methode angewendet wird, wird in Java mit this bezeichnet. Wir könnten also auch schreiben: class Fraction { int z; // Zähler int n; // Nenner... void add(fraction f) { this.z = this.z*f.n + f.z*this.n; this.n = this.n*f.n; } /* end of add */ Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 225
7 Aufruf der Methoden class Fraction { int z; // Zähler int n; // Nenner void add(fraction f) {... } void subtract(fraction f) {... } void multiply(fraction f) {... } void divide(fraction f) {... } } /* end of Fraction */ public static void main (String[] args) { Fraction a = new Fraction(); Fraction b = new Fraction(); a.z = 1; a.n = 2; b.z = 3; b.n = 5;... a.multiply(b); // a = 3/10 b.divide(b); // b = 15/15 = 1 } /* end of main */ Objekte der Klasse Fraction repräsentieren rationale Zahlen. Die Methoden add, subtract,multiply und divide sind lokal zur Klasse Fraction. add, subtract,multiply und divide können von außen für den Zugriff auf Objekte der Klasse Fraction benutzt werden. add, subtract,multiply und divide greifen auf die Daten desjenigen Objektes zu, auf das sie angewendet werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 226
8 Aufruf der Methoden add, subtract,multiply und divide greifen auf die Daten desjenigen Objektes zu, auf das sie angewendet werden:... a.z = 1; a.n = 2; b.z = 3; b.n = 5; a.multiply(b); // a = 3/10... Beachte: Man wählt zuerst ein Objekt aus (hier a) und dann eine Methode, die auf a angewendet wird (hier: multiply). Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 227
9 Aufruf der Methoden... a.z = 1; a.n = 2; b.z = 3; b.n = 5; a.multiply(b); // a = 3/10... Wir sagen: Das Objekt a bekommt die Nachricht multiply, wodurch die multiply-methode aufgerufen wird. Das Objekt a ist der Empfänger der Nachricht multiply. Der Empfänger einer Nachricht kann in der aufgerufenen Methode mit this referenziert werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 228
10 Aufruf der Methoden Was geschieht bem Senden einer Nachricht a.multiply(b)? 1. Der Empfänger der Nachricht ist Objekt der Klasse Fraction. Daher wird die Methode multiply der Klasse Fraction ausgewählt. 2. Die Methode multiply hat neben ihrem formalen Parameter f noch einen versteckten Parameter this, den formalen Empfänger. 3. Der aktuelle Empfänger a wird dem formalen Empfänger this zugewiesen. 4. Dann wird die Methode multiply aufgerufen und ausgeführt. void multiply(/* Fraction this, */ Fraction f) { this.z = this.z*f.z; this.n = this.n*f.n; } /* end of multiply */ Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 229
11 Klassendiagramme Klassen können graphisch mit Klassendiagrammen dargestellt werden. Fraction z : int n : int add(f: Fraction) subtract(f: Fraction) multiply(f: Fraction) divide(f: Fraction) Das Klassendiagramm enthält drei Teile. Der oberste Teil enthält den Klassennamen fettgedruckt. Der mittlere Teil enthält die Felder der Klasse, d.h. die Daten. Der untere Teil enthält die Methodenköpfe. Ergebnistypen einer Methode void werden, durch einen : getrennt, hinter den Methoden angegeben (Bsp. folgt später). Klassendiagramme dienen der Dokumentation von Programmen. Daher können die einzelnen Teile mehr oder weniger ausführlich gehalten werden. Klassendiagramme sind Teil der Unified Modeling Language (UML), einer Menge graphischer Notationen zur Beschreibung objektorientierter Systeme. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 230
12 Konstruktoren Konstruktoren sind spezielle Methoden, die es erlauben, ein Objekt einer Klasse zu initialisieren. Ein Konstruktor ist eine Methode, die den gleichen Namen hat wie die Klasse, zu der sie gehört. class Fraction { int z; // Zähler int n; // Nenner } Fraction(int z, int n) { this.z = z; this.n = n; } /* end of constructor 1 */ Fraction(int k) { this.z = k; this.n = 1; } /* end of constructor 2 */ Fraction() { this.z = 0; this.n = 1; } /* end of constructor 3 */ Ein Konstruktor wird ohne Funktionstyp und ohne Schlüsselwort void deklariert. Ein Konstruktor kann Parameter haben. Eine Klasse kann mehrere Konstruktoren besitzen. Diese haben alle den gleichen Namen (den Klassennamen) und unterscheiden sich in ihren Parameterlisten. Ist der parameterlose Konstruktor nicht explizit deklariert, so werden bei Erzeugung eines neuen Objektes alle Felder des Objektes auf 0 (bzw. null, false) gesetzt. Dies ist bei Brüchen nicht sinnvoll (Nenner=0). Daher wird hier der parameterlose Konstruktor explizit angegeben. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 231
13 Konstruktoren Konstruktoren sind spezielle Methoden, die es erlauben, ein Objekt einer Klasse zu initialisieren. Ein Konstruktor ist eine Methode, die den gleichen Namen hat wie die Klasse, zu der sie gehört. Die Anweisung class Fraction { Fraction(int z, int n) {... } Fraction(int k) {... } }... main(...) { Fraction a = new Fraction(1,2); /* 1/2 */ Fraction b = new Fraction(5); /* 5/1 */ } /* end of main */ Fraction a = new Fraction(1,2); erzeugt ein neues Objekt der Klasse Fraction und initialisiert es als 1/2. Die Anweisung Fraction b = new Fraction(5); erzeugt ein neues Objekt der Klasse Fraction und initialisiert es als 5/1. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 232
14 Statische und objektbezogene Methoden und Felder Die Methoden add, subtract,multiply und divide wurden ohne das Schlüsselwort static deklariert. Betrachtet man eine Klasse als Objekt (das Klassenobjekt, ein Schablonenobjekt, das das Aussehen aller Objekte in der Klasse festlegt) so erhält man: statische Komponenten: Felder und Methoden des Klassenobjekts. Die statischen Komponenten werden mit dem Zusatz static deklariert. objektbezogene Komponenten: Felder und Methoden der Objekte, die von der Klasse erzeugt werden. Die objektbezogenen Komponenten werden ohne den Zusatz static deklariert. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 233
15 Beispiel: (Statische und objektbezogene Methoden und Felder) Wir wollen mitzählen, wie viele Objekte der Klasse Fraction wir erzeugt haben. Dazu erweitern wir die Klasse Fraction um eine statische Komponente fraccnt. class Fraction { int z; int n; /* objektbezogene Felder */ static int fraccnt; /* statisches Feld */ Fraction(int z, int n) { /* Objektkonstruktor */ this.z = z; this.n = n; fraccnt++; } /* end of Objektkonstruktor */ static { /* Klassenkonstruktor */ fraccnt = 0; } /* end of Klassenkonstruktor */ static void resetfraccnt() { fraccnt = 0; }... Die Methode resetfraccnt ist eine Klassenmethode. Sie muss statisch deklariert werden. Der Konstruktor Fraction(...){...} ist Objektkonstruktor und wird aufgerufen, wenn ein neues Objekt erzeugt wird. Der Konstruktor static {...} ist Klassenkonstruktor und wird aufgerufen, wenn die Klasse geladen wird (zu Programmstart). Eine Klasse kann höchstens einen Klassenkonstruktor haben. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 234
16 Zugriff auf Klassenfelder und Klassenmethoden Klassenfelder und Klassenmethoden gehören zu einer Klasse. daher werden sie mit dem Klassennamen qualifiziert. Fraction.fracCnt = 0; Fraction.resetFracCnt(); Innerhalb ihrer Klasse kann die Qualifizierung mit dem Klassennamen weggelassen werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 235
17 Hauptprogramme und Klassen public class MyProgram { static void print(string s) { Out.println(s); } } public static void main(string[] args) { for (int i = 0; i < args.length; i++) print(args[i]); } Die Klasse MyProgram enthält zwei Klassenmethoden, eine davon mit Namen main. Jede Klasse, die eine public Methode main(string[] args) enthält, kann als Programm gestartet werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 236
18 Hauptprogramme und Parameterübergabe Strings können als Parameter an die Main Methode übergeben werden. In Eclipse: Run Menue aufrufen und dann wie links dargestellt die Argumente eintragen. Über eine Kommandozeile: java MyProgram Bla Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 237
19 Zusammenfassung: Objektbezogene und statische Komponenten objektbezogen statisch Deklaration ohne static mit static existieren in jedem Objekt nur einmal pro Klasse Felder werden angelegt wenn das Objekt erzeugt wird wenn die Klasse geladen wird (bei Programmstart) Felder werden freigegeben vom garbage Collector, wenn kein wenn die Klasse entladen wird Zeiger mehr auf das Objekt zeigt (bei Programmende) Konstruktor wird aufgerufen wenn das Objekt erzeugt wird wenn die Klasse geladen wird Felder werden angesprochen obj.field Class.field this.field Methoden werden aufgerufen obj.method() Class.method() this.method() Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 238
20 Beispiel: Keller Ein Keller (stack) ist ein Stapel von Objekten, auf den man Objekte legen kann und von dem man Objekte entfernen kann. Das zuletzt auf den Keller gelegte Objekt wird als erstes wieder entfernt (Last-In-First-Out: LIFO-Strategie). Für die Implementierung eines Kellers benötigen wir 5 Methoden: Keller(n) erzeugt einen neuen, leeren Keller für höchstens n Elemente. empty() prüft, ob ein Keller leer ist. push(x) legt ein Element auf den Keller. pop() entfernt das zuletzt eingefügte Element vom Keller. top() liefert das zuletzt eingefügte Element im Keller. x y x x z x x new Keller push(x) push(y) pop() push(z) pop() Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 239
21 Beispiel: Keller Ein Keller (stack) ist ein Stapel von Objekten, auf den man Objekte legen kann und von dem man Objekte entfernen kann. Das zuletzt auf den Keller gelegte Objekt wird als erstes wieder entfernt (Last-In-First-Out: LIFO-Strategie). Wir implementieren einen Keller für int- Werte als ein int-array mit einem int- Wert für die aktuelle Länge. Klassendiagramm: Keller s : int[ ] length : int empty() : boolean push(int x) pop() top() : int Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 240
22 public class Keller { int[] s; /* Array für Kellerelemente (hier int) */ int length; /* Anzahl der Elemente im Keller */ Keller(int size) { /* Konstruktor, Keller für size Elemente */ s = new int[size]; length = 0; } /* end of Konstruktor */ Keller() { /* Konstruktor, Keller für 1024 Elemente */ s = new int[1024]; length = 0; } /* end of Konstruktor */ boolean empty() { /* Abfrage auf leeren Keller */ return(length == 0); } /* end of empty */ }... Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 241
23 public class Keller { int[] s; /* Array für Kellerelemente (hier int) */ int length; /* Anzahl der Elemente im Keller */... void push(int x) { /* legt Element x auf Keller */ if (length < s.length) s[length++] = x; else System.exit(99); /* Programmabbruch */ } /* end of push */ void pop() { /* lösche oberstes Element */ if (!empty()) length--; } /* end of pop */ } int top() { /* liefert oberstes Element */ return(s[length-1]); } /* end of top */... Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 242
24 public class Keller {... public static void main(string[ ] args) { /* Beispiel für Kellernutzung */ int n, x; Out.print("Geben Sie die Kellergröße an: "); /* erzeuge leeren Keller */ n = In.readInt(); Keller stack = new Keller(n); Out.print("Geben Sie Zahlen >= 0 ein (Ende mit -1): "); /* schreibe in Keller */ do { x = In.readInt(); if (x!= -1) stack.push(x); } while (x!= -1); Out.println("Ausgabe in umgekehrter Reihenfolge: "); /* lese aus Keller */ while (!stack.empty()) { Out.print(" "+stack.top()); stack.pop(); } Out.println(); } /* end of main */ } /* end of class Keller */ Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 243
25 Beispiel: Schlange Eine Schlange (queue) ist eine Liste von Objekten, in die man Objekte einfügen kann und aus der man Objekte entfernen kann. Das zuerst in die Schlange eingefügte Objekt wird als erstes wieder entfernt (First-In-First-Out: FIFO- Strategie). Für die Implementierung einer Schlange benötigen wir 5 Methoden: Schlange(n) erzeugt eine neue, leere Schlange für höchstens n Elemente. empty() prüft, ob eine Schlange leer ist. enq(x) fügt ein Element in die Schlange ein. deq() entfernt das zuerst eingefügt Element aus der Schlange. head() liefert das zuerst eingefügte Element aus der Schlange. x x y y y z z new Schlange enq(x) enq(y) deq() enq(z) deq() Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 244
26 Beispiel: Schlange Schlangen werden oft waagerecht gezeichnet: auslesen einfügen Wir implementieren eine Schlange mit einem Array. Im Index first speichern wir das erste Element der Schlange (zuerst eingefügt). Der Index last zeigt auf das erste freie Arrayelement. Ist first == last, so ist die Schlange leer. auslesen einfügen first last Damit sind die Methoden empty, enq, deq, head sehr einfach zu implementieren. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 245
27 Beispiel: Schlange Ein Problem haben wir, wenn die Schlange nach einigen deq- und enq- Operationen so aussieht, dass der last-index am Ende des Arrays angekommen ist. aus ein first last Eine weitere enq-operation würde bewirken, dass der last-zeiger die gültigen Indizes verläßt: aus ein first last Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 246
28 Eine weitere enq-operation würde bewirken, dass der last-zeiger die gültigen Indizes verläßt: aus ein first last Daher interpretieren wir das Array als zirkuläre Liste und springen mit dem last-zeiger zum Index 0. ein aus last first Nach einer weiteren enq-operation bewegt sich der last-zeiger weiter auf den first-zeiger zu. ein aus last first Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 247
29 Ist nur noch ein Arrayelement frei, so sieht die Schlange wie folgt aus: last first Würde das letzte Arrayelement der Schlange belegt, so würde der last-zeiger auf das gleiche Arrayelement wir der first-zeiger zeigen: first last Das soll aber unsere Bedingung für eine leere Schlange sein. Daher sorgen wir dafür, dass immer mindestens ein Arrayelement frei ist, d.h. wir erzeugen immer ein Arrayelement mehr als vom Benutzer gewünscht und lassen die oben dargestellte Situation nicht zu. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 248
30 Eine Schlange (queue) ist eine Liste von Objekten, in die man Objekte einfügen kann und aus der man Objekte entfernen kann. Das zuerst in die Schlange eingefügte Objekt wird als erstes wieder entfernt (First-In-First-Out: FIFO- Strategie). Wir implementieren eine Schlange für int- Werte als ein int-array mit je einem int- Wert für den Index des ersten bzw. letzten Eintrags in dem Array. Wir implementieren eine Funktion nextindex(int ix), die uns den zyklisch gesehen nächsten Index nach ix berechnet. Auf diese Methode soll nur in der Klasse Schlange selbst zugegriffen werden können. (Ausgedrückt durch - - Zeichen im Klassendiagramm bzw. dem Schlüsselwort private in Java. Klassendiagramm: Schlange q : int[ ] first : int last : int -nextindex(int ix) : int empty() : boolean enq(int x) deq() head() : int Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 249
31 public class Schlange { int[] q; /* Array für Schlangenelemente (hier int) */ int first; /* Erstes Element in der Schlange */ int last; /* Erstes freies Arrayelement in der Schlange */ Schlange(int size) { /* Konstruktor, Schlange für size Elemente */ // ein freies Element wird immer benötigt, daher...[size+1] q = new int[size+1]; first = 0; last = 0; } /* end of Konstruktor */ } private int nextindex(int ix) { /* zyklisch nächster Index nach ix */ if (ix < q.length-1) return(ix+1); else return(0); } /* end of nextindex */ boolean empty() { return(first == last); } /* end of empty */... Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 250
32 public class Schlange { int[] q; /* Array für Schlangenelemente (hier int) */ int first; /* Erstes Element in der Schlange */ int last; /* Erstes freies Arrayelement in der Schlange */ void enq(int x) { /* fügt Element x in Schlange ein */ int next = nextindex(last); if (next!= first) { q[last] = x; last = next; } else System.exit(99); /* Programmabbruch */ } /* end of enq */ void deq() { /* lösche erstes Element */ if (!empty()) first = nextindex(first); } /* end of deq */ int head() { /* liefert erstes Element */ return(q[first]); } /* end of head */ }... Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 251
33 public class Schlange {... public static void main(string[] args) { /* Beispiel für Schlangennutzung */ int n, x; Out.print("Geben Sie die Schlangengröße an: "); /* erzeuge leere Schlange */ n = In.readInt(); Schlange queue = new Schlange(n); Out.print("Geben Sie Zahlen >= 0 ein (Ende mit -1): "); /* schreibe in Schlange */ do { x = In.readInt(); if (x!= -1) queue.enq(x); } while (x!= -1); Out.println("Ausgabe in gleicher Reihenfolge: "); /* lese aus Schlange */ while (!queue.empty()) { Out.print(" "+queue.head()); queue.deq(); } Out.println(); } /* end of main */ } /* end of class Schlange */ Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 252
Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung
Grundlagen der Programmierung Prof. H. Mössenböck 11. Objektorientierung Klasse = Daten + Methoden Beispiel: Positionsklasse class Position { private int x; private int y; void goleft() { x = x - 1; void
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrEinfü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
MehrEinstieg 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:
MehrTag 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
Mehr1 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
MehrEinstieg 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
MehrRepetitorium 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
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
MehrKonkatenation zweier Listen mit concat
Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,
MehrC++ - 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
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrImplementieren 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
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr6 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
MehrKlassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:
Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit
MehrKapitel 4: Datentyp Keller und Schlange
Kapitel 4: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) 4-1 Definition Keller und seine Operationen Ein Keller (engl. Stack; Stapel) ist eine endliche Menge von Elementen mit einer LIFO-Organisation
MehrObjektorientierte 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
MehrIII. Objektorientierte Programmierung. Aufruf einer Methode. Definition einer Methode. Bezug zur aufrufenden Instanz. Instanzen einer Klasse
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 12 Ekkart Kindler III. Objektorientierte Programmierung Überblick Klassen und Methoden Vererbung Zugriffsrechte Definition einer Methode
Mehr12 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,
MehrHeap 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
MehrTag 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
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
MehrHeap 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
MehrMethoden. 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
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Mehr1 of :17:14
7 public class Main 10 /** 11 * @param args the command line arguments 1 */ 13 public static void main(string[] args) 14 { 15 // Aufgabe 1 16 System.out.println("##### AUFGABE 1 #####"); 17 // Stack initialisieren
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinstieg 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
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Mehr1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
Mehr55 Ring-Queue. size. push. clear. get. Reinhard Schiedermeier / Klaus Köhler, Das Java-Praktikum, dpunkt.verlag, ISBN
D3kjd3Di38lk323nnm 394 55 Ring-Queue In dieser Aufgabe wird eine generische Containerklasse definiert. Ihre Kapazität wird beim Erzeugen festgelegt, im Gegensatz zu den Klassen des Collection- Frameworks.
Mehr3. Exkurs in weitere Arten der Programmierung
3. Exkurs in weitere Arten der Programmierung Inhalt: Objektorientierte Programmierung in C++ Logische Programmierung in Prolog Peter Sobe Objektorientierte Programmierung in C++ C++ ist eine objektorientierte
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
MehrEinstieg 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
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Mehr5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
MehrEinstieg 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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrÜbung zur Vorlesung Programmierung
RWTH Aachen Lehrgebiet Theoretische Informatik Frohn Reidl Rossmanith Sánchez Ströder WS 013/14 Übungsblatt 4 18.11.013 Übung zur Vorlesung Programmierung Aufgabe T8 Ein Stack ist eine Datenstruktur, die
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
Mehr12.3 Ein Datenmodell für Listen
Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste
MehrEinstieg in die Informatik mit Java
1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld
MehrAufgaben NF 11; Seite 1
Aufgabe Ref 1: Gegeben ist die Klasse Schueler public class Schueler { private String name, vorname, kurs; // Konstruktor public Schueler(String n, String vn, String k) { name=n; vorname=vn; kurs=k; public
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrAusgabe:
Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrFH 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
MehrEinführung in die Programmierung für NF. Arrays
Einführung in die Programmierung für NF Arrays ARRAY (REIHUNG) 4 Arrays 2 Array In der Programmierung werden o: Tupel verschiedener Länge benutzt. Beispiel: Vektoren (1.0, 1.0) (0.2, 1.2, 7.0) Beispiel:
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
Mehr6. Objekte, Klassen, ADTs
6. Objekte, Klassen, ADTs Entwicklungsgeschichte 1. Vordefinierte Datentypen (In Java: int, float etc.) Datenbereich und Operationen durch die Sprache vordefiniert 2. Benutzerdefinierte Datentypen (In
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
Mehr620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE
MehrSoftwareentwicklung I (IB) Objekte. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Softwareentwicklung I (IB) Objekte Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 20:09 Inhaltsverzeichnis Neue Typen durch Klassen............................. 2
Mehr5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrÜbung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.
Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12
MehrInnere 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
MehrPraktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuß, Henning Timm Übungsblatt 11
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrStapel (Stack, Keller)
Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrHochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6
Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition
Mehreinkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();
MehrFelder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.
Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen
MehrJavakurs 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
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Mehr