5.6 Vererbung. Vererbung

Größe: px
Ab Seite anzeigen:

Download "5.6 Vererbung. Vererbung"

Transkript

1 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug und jeder Zug, jedes Schiff und jedes Flugzeug ist ein Transportmittel Vererbung Transportmittel Kraftfahrzeug Zug Schiff Flugzeug PKW LKW Multi-Eng. Single-Eng. SLK 230 A 170 A 340 B 737 C 172 Traveler 5-146

2 Vererbung Sowohl PKWs als auch LKWs besitzen Fahrersitze und Fahrertüren, es handelt sich also um Attribute der Oberklasse Kraftfahrzeug Sowohl PKWs als auch LKWs haben die Methoden Sitz verstellen,tür schließen und fahren, es sind Methoden der Oberklasse Kraftfahrzeug PKWs haben jedoch mit der Rückbank und dem Kofferraum eigene Attribute und mit hinten einsteigen eigene Methoden LKWs haben mit der Ladefläche und dem Anhänger auch eigene Attribute und beladen ist eine eigene Methode! Unterklassen PKW und LKW besitzen alle Attribute und Methoden der Oberklasse Kraftfahrzeug, haben jedoch noch zusätzliche Ähnlichkeiten bei Objekten Zusammenfassen von gleichen Attributen und Methoden Beispiel Konten: Girokonto kontostand: int inhaber: Person habenzinsen: int sollzinsen: int dispo: int holekontostand() zahle() Sparkonto kontostand: int inhaber: Person habenzinsen: int holekontostand() zahle() kuendigen() Festgeldkonto kontostand: int inhaber: Person habenzinsen: int mindbetrag: int laufzeit: int holekontostand() zahle() kuendigen() 5-148

3 Vererbung Erweiterung des Klassenmodells: Konto kontostand: int inhaber: Person habenzinsen: int holekontostand() zahle() Girokonto sollzinsen: int dispo: int Sparkonto kuendigen() Festgeldkonto mindbetrag: int laufzeit: int kuendigen() Vererbung Die vererbende Klasse heißt Superklasse. Die erbenden Klassen sind Unter- oder Subklassen. Konto ist also die Superklasse der Klassen Girokonto, Festgeldkonto, Sparkonto. Diese sind die Subklassen der Klasse Konto

4 Verhältnis zwischen Objekten erbender Klassen Alle Objekte sind Konten! Einige sind besondere Arten von Konten. Die Mengen der Sparkonten, Girokonten, Festgeldkonten sind jeweils eine Teilmenge der Menge der Konten. Die Teilmengen sind disjunkt. Konto Sparkonto Girokonto Festgeldkonto Verhältnis zwischen Objekten erbender Klassen Deklarationen: Girokonto eingirokonto; Sparkonto einsparkonto; Konto einkonto, einandereskonto; Zulässige Zuweisungen: eingirokonto = new Girokonto(); einsparkonto = new Sparkonto(); eingirokonto.sollzinsen = 12; einkonto = eingirokonto; einandereskonto = new Sparkonto(); Nicht erlaubte Zuweisungen: einsparkonto = eingirokonto; eingirokonto = new Sparkonto(); 5-152

5 Verhältnis zwischen Objekten erbender Klassen Jedes Sparkonto / Girokonto ist auch ein Konto, deshalb ist einkonto = einsparkonto; zulässig. Allerdings ist der Zugriff auf alle Attribute nicht möglich, einkonto kann nur auf die Konto-Attribute zugreifen. Ein Objekt einer Klasse kann also mehrere Erscheinungsformen haben, es kann ein Objekt der Klasse selbst sein oder es kann ein Objekt einer der Unterklassen dieser Klasse sein. Man nennt es polymorph Verhältnis zwischen Objekten erbender Klassen Was passiert bei folgender Anweisung? if (x % 2 == 0) einkonto = einsparkonto; else einkonto = eingirokonto; Der Compiler ist nicht in der Lage, die Klasse von einkonto zu bestimmen. einkonto kann nach der if-else Anweisung eine von mehreren Klassen haben, es ist polymorph. Ist folgende Anweisung erlaubt? einkonto = (x % 2 == 0? eingirokonto : einsparkonto); Nein, da eingirokonto und einsparkonto nicht zuweisungskompatibel sind! 5-154

6 Die Klasse Konto public class Konto { private int kontostand = 0; private Waehrungsrechner wr; private Person inhaber; private int habenzinsen; public Konto(Person inhaber, Waehrungsrechner wr) { this.inhaber = inhaber; this.wr = wr; public void zahle(int pfennige) { int eurocent = wr.konvineurocent(pfennige); kontostand += eurocent; public int holekontostand() { int pfennige = wr.konvinpfennige(kontostand); return (pfennige); // Ende der Klasse Konto Die Klasse Girokonto public class Girokonto extends Konto { private int sollzinsen; private int dispo; public Girokonto(Person inhaber, Waehrungsrechner wr) { super(inhaber, wr); // Ende der Klasse Girokonto 5-156

7 Technische Aspekte der Vererbung Vererbung wird über das Schüsselwort extends realisiert: class Unterklasse extends Oberklasse {... // Hier zusätzliche Attribute... // und Methoden Die neu definierte Unterklasse erweitert also die anderswo definierte Oberklasse um neue Attribute und Methoden. Alle Methoden und Attribute der Oberklasse werden übernommen. Jede Klasse hat genau eine Oberklasse (Java kennt keine Mehrfachvererbung). Ist keine Oberklasse definiert (kein extends), so ist die Systemklasse Object die Oberklasse " Object ist eine Oberklasse für alle Klassen (bis auf Object selbst) Konstruktoren werden nicht vererbt, Konstruktoren der abgeleiteten Klasse müssen neu definiert werden! Technische Aspekte der Vererbung Über das Schlüsselwort super kann am Anfang eines Konstruktors der abgeleiteten Klasse ein Konstruktor der Oberklasse aufgerufen werden. Beispiel: class A { A(String name) {... class B extends A { B(String name, int a) { super(name); // Aufruf des Oberklassenkonstr. Wenn in der ersten Anweisung des Subklassen-Konstruktors nicht einer der Konstruktoren der Superklasse aufgerufen wird, dann wird der parameterlose Superklassen-Konstruktor (Standard-Konstruktor) automatisch aufgerufen, bevor irgendeine andere Anweisung des Subklassen-Konstruktors aufgerufen wird

8 Zugriffsrechte für Attribute und Methoden private Methoden und Attribute sind nur in der Klasse zugreifbar, in der sie definiert sind. protected Methoden und Attribute sind in der Klasse selbst, von allen Unterklassen und von allen Klassen im gleichen package zugreifbar. Methoden und Attribute ohne Zugriffs-modifikator sind in der Klasse und von allen Klassen im gleichen package zugreifbar. public Methoden und Attribute sind von allen Klassen aus zugreifbar Überschreiben von Methoden Methode berechnezinsen(int tage) hat gleiche Implementierung in Sparkonto und Festgeldkonto, aber: in Girokonto Berechnung aus Sollzinsen und Habenzinsen. Lösung: Standard-Implementierung in Konto und Überschreiben in Girokonto public class Konto {... protected int berechnezinsen(int tage) { public class Girokonto extends Konto {... protected int berechnezinsen(int tage) {

9 Zugriff auf überschriebene Attribute / Methoden In einem Objekt einer abgeleiteten Klasse ist super eine Referenz auf das Teilobjekt der Oberklasse, Attribute und Methoden der Oberklasse lassen sich über super ansprechen (auch überschriebene Attribute und Methoden). Beispiel: class A { int variable; void methode() {... class B extends A { int variable; // Überschreibendes Attr. void methode() {... // Überschreibende Meth. void methode2() { super.variable = 3; // Zugriff auf überschriebene super.methode(); // Attr. und Meth. der Oberklasse Schlüsselwort: final final verhindert, daß eine Methode überschrieben wird: public final int holekontostand() {... final verhindert, daß Unterklassen von einer Klasse abgeleitet werden können: public final class Girokonto extends Konto {... Von Girokonto können keine weiteren Unterklassen durch Vererbung abgeleitet werden. Alle Methoden einer finalen Klasse sind implizit auch final. Finale Klassen und Methoden sind manchmal aus Sicherheitsgründen erforderlich. Sie tun das, was sie tun sollen, und sie können nicht durch Überschreiben manipuliert werden. Typische Anwendung: eine Methode zur Passwort-Prüfung. final-variablen können nach ihrer Initialisierung nicht mehr verändert werden, sie sind also Konstanten: public final int mwst; 5-162

10 Abstrakte Methoden / Klassen Problem: Jede Subklasse hat die gleiche Methode, aber unterschiedliche Implementierung. Beispiel: public int auszahlen(int betrag); Girokonto: beliebige Auszahlung bis Limit Sparkonto: Restguthaben von DM 5,- nötig (außer nach Kündigung) Festgeld: Auszahlung erst nach Ende der Laufzeit Lösung: abstrakte Methode in der Superklasse. Eine abstrakte Methode ist eine Methode, für die nur eine Signatur (Kopf der Methode), aber keine Implementierung (kein Rumpf) existiert. Enthält eine Klasse eine abstrakte Methode, so ist die Klasse selbst abstrakt. Es können keine Objekte zu einer abstrakten Klasse erzeugt werden. Eine Unterklasse muß die abstrakten Methoden der Oberklasse implementieren, oder sie ist selbst wieder abstrakt Beispiel public class Datum { public Datum(int tag, int monat, int jahr) {... public void setzedatum(int tag, int monat, int jahr) {... public static Datum aktuellesdatum() {... public boolean istspaeterals(datum dat) {... public boolean istabgelaufen() {... public boolean istgleich(datum dat) {... public int gibdifferenz(datum dat) {

11 Beispiel public abstract class Konto { protected Datum letztetransaktion;... public void einzahlen(int betrag) { Datum heute = Datum.aktuellesDatum(); int zinstage = heute.gibdifferenz(letztetransaktion); int zinsen = berechnezinsen(zinstage); zahle(betrag + zinsen); public abstract int auszahlen(int betrag); Schlüsselwort abstract vor Methode und Klasse! Beispiel class Girokonto extends Konto {... public int auszahlen(int betrag) { Datum heute = Datum.aktuellesDatum(); int zinstage = heute.gibdifferenz(letztetransaktion); int zinsen = berechnezinsen(zinstage); zahle(zinsen); if (kontostand - betrag > dispo) { zahle(-betrag); return (betrag); else System.out.println("Keine Auszahlung möglich"); return (0); 5-166

12 Polymorphie Wunsch: Alle Objekte aus der Oberklasse Konto sollen in der gleichen Weise behandelt werden können. Lösung: Eine Oberklassen-Referenz kann auch auf Objekte der Subklassen verweisen. Methoden der Oberklasse können so aufgerufen werden. Wurde eine Methode von einer Subklasse überschrieben, so wird nicht die Methodenimplementierung der Oberklasse aufgerufen, sondern die Implementierung der Subklasse Polymorphie Methoden können so mit allen möglichen Konten arbeiten: public int berechnevermoegen(konto[] konten) { int vermoegen = 0; for (int i = 0; i < konten.length; i++) { Konto k = konten[i]; vermoegen += k.holekontostand(); return (vermoegen); Methodenaufruf wird an die entsprechende Subklasse weitergeleitet 5-168

13 Technische Aspekte der Polymorphie Polymorphie wird bei Vererbung durch Überschreiben der Methoden der Oberklasse erreicht, dabei muß die Signatur (also Parameterliste und Rückgabetyp) mit der Methode der Oberklasse übereinstimmen. Beim Überschreiben werden die allgemeineren Methoden (der Oberklasse) durch die konkreteren der Unterklasse überschrieben. Auch wenn ein Objekt durch eine Variable eines allgemeineren Typs referenziert wird, so werden immer die zum Objekt gehörenden Methoden aufgerufen. Überschreiben darf nicht mit Überladen verwechselt werden, bei überladenen Methoden hat man unterschiedliche Signaturen und nur der Methodenname ist der gleiche instanceof Da jedes Objekt auch über Referenzen der Oberklasse angesprochen werden kann, ist nicht immer klar, zu welcher Klasse ein Objekt gehört. Daher gibt es das Schlüsselwort instanceof, um die Klassenzugehörigkeit eines Objektes zu bestimmen: if(objektname instanceof Klassenname) Anweisung; Die Abfrage liefert auch dann true, wenn durch Klassenname eine Oberklasse für das zu Objektname zugehörige Objekt angegeben wird

14 Beispiel: Klasse X public abstract class X { private int a; public X() { this.a = 0; public X(int a) { if (a >= 0) this.a = a; else this.a = 0; protected void set(int a) { if (a >= 0) this.a = a; else this.a = 0; protected int geta() { return a; public abstract void print(); Beispiel: Klasse Y public class Y extends X { private int b; public Y(int a, int b) { super(a); this.b = b; public Y() { this(0, 0); public void set(int a, int b) { set(a); this.b = b; protected int getb() { return b; public void print() { System.out.println("In Y: a = " + geta() + " b = " + b); 5-172

15 Beispiel: Klasse Z public final class Z extends Y { private int c; public Z(int a, int b, int c) { super(a, b); this.c = c; public Z() { this(0, 0, 0); public void set(int a, int b, int c) { super.set(a, b); this.c = c; public void print() { System.out.println("In Z: a = " + geta() + " b = " + getb() + " c = " + c); Beispiel: Klasse Test public class Test { public static void main(string args[]) { System.out.println("Beginn Test"); Y y = new Y(1, 1); Z z = new Z(2, 2, 2); X x; y.print(); // In Y: a = 1 b = 1 z.print(); // In Z: a = 2 b = 2 c = 2 x = y; // x.set(3, 3); ist nicht erlaubt! x.set(3); x.print(); // In Y: a = 3 b = 1 x = z; // x.set(3, 3); ist nicht erlaubt! // x.set(3, 3, 3); ist nicht erlaubt! x.print(); // In Z: a = 2 b = 2 c = 2 Y y1 = z; // y1.set(4, 4, 4); ist nicht erlaubt! y1.set(5, 5); y1.print(); // In Z: a = 5 b = 5 c = 2 System.out.println("Ende"); 5-174

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.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();

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Objektorientierung Grundbegriffe

Objektorientierung Grundbegriffe Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen

Mehr

Java Einführung Methoden in Klassen

Java 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

Mehr

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2 Praktische Informatik I Vorlesung im Herbstwintersemester 2007 Autorisierte studentisch Lösungen zu Aufgabenblatt 2 zusammengestellt von Iva Tsvetkova 9.10.2007 1.Präsenzaufgaben 1.1 Entwurf einer Verwaltung

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Grundlagen der Informatik Objektorientierte Software-Entwicklung

Grundlagen der Informatik Objektorientierte Software-Entwicklung Grundlagen der Informatik Objektorientierte Software-Entwicklung Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 9: Vererbung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 9 Vererbung... 3 9.1 Motivation... 3 9.2 Deklaration und Zugriffsrechte...

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Vorkurs C++ Programmierung

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:

Mehr

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean Inhalt 9 Klassen... 9-2 9.1 Instanzvariablen und Instanzmethoden... 9-2 9.1.1 Vereinbarung... 9-2 9.1.2 this - Selbstreferenz... 9-5 9.1.3 tostring()... 9-5 9.2 Klassenvariablen und Klassenmethoden...

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Ü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

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

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

Mehr

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

Fallstudie: Game of Life

Fallstudie: Game of Life Fallstudie: Game of Life Erfunden 1970 von John Horton Conway. Spielplan: unendliches 2D-Gitter (für uns: = 100 100 o.ä.) Eine Zelle ist entweder lebendig oder tot. Zu Beginn sind manche Zellen lebendig

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen Gliederung Einführung: Methodenbindung und Kapselung

Mehr

> Vererbung, Die Austauschbarkeit

> Vererbung, Die Austauschbarkeit Objektorientierte Programmierung (OOP) > Vererbung, Die Austauschbarkeit Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen wie Objekte gezielt kompatibel werden und somit ausgetauscht werden können

Mehr

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Klassen und Unterklassen

Klassen und Unterklassen Klassen und Unterklassen Klassenfelder, Klassenmethoden, Applikationen,Unterklassen, Benutzung, Vererbung, super, over-riding, Systemklassen, Pakete, Applets Klassenfelder Manche Felder müssen nicht in

Mehr

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008 Überblick 1 Primitive Datentypen Von Java/C nach Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Grundkonzepte objektorientierter Programmierung -

Grundkonzepte objektorientierter Programmierung - Grundkonzepte objektorientierter Programmierung - Beispiele in Java, Oberon-2, Python und Delphi Projektarbeit im Studiengang Lehramt Informatik Sommersemester 2006 Friedrich-Schiller-Universität Jena

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Programmieren I in Java

Programmieren I in Java Programmieren I in Java Dr. Klaus Höppner 1. Zusammenfassung Inhaltsverzeichnis 1 Grundlagen der objektorientierten Programmierung 2 1.1 Prinzip......................................... 2 1.2 Grundlegende

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

Ersetzbarkeit, Client-Server Beziehungen

Ersetzbarkeit, Client-Server Beziehungen Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Raimund Kirner Mitwirkung an Folienerstellung: Peter Puschner, basieren auf den Folien von Franz Puntigam, TU Wien Überblick

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Objektorientierte Programmierung mit Java

Objektorientierte Programmierung mit Java Inhalt: Generalisierung, Spezialisierung Module, Klassen, Objekte Klassenhierarchien, Vererbung, abstrakte Klassen, Schnittstellen Entwicklung eines Fußballmanagers (EM 2008) Block M.: "Java-Intensivkurs

Mehr

Einführung in die Programmierung für NF

Einführung in die Programmierung für NF Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Programmiervorkurs SS 2011

Programmiervorkurs SS 2011 Programmiervorkurs SS 2011 Objekte und Vererbung Programmiervorkurs SS 2011 Wir erinnern uns an Montag public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!");

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Algorithmik II. Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt:

Algorithmik II. Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt: Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt: ( d e f i n e ( e r o e f f n e k o n t o g u t h a b e n ) ( d e f i n e ( abheben b e t r a

Mehr

Objektorientierte Systementwicklung: Vererbung

Objektorientierte Systementwicklung: Vererbung Objektorientierte Systementwicklung: Vererbung Inhaltsverzeichnis: 1 Ausgangssituation 1 2 Generalisierung - Spezialisierung 2 3 Umsetzung der Vererbung mit Java 4 3.1 Quellcode in untergeordneten Klassen

Mehr

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik Fachhochschule Kaiserslautern FB Informatik und Mikrosystemtechnik Prof. Dr. M. Duque-Antón Bachelor-Klausur im WiSe 2013 / 2014 im Fach Grundlagen der Informatik Angewandte Informatik / Medieninformatik

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

Software-Entwicklung: Konzepte der Objektorientierung

Software-Entwicklung: Konzepte der Objektorientierung Software-Entwicklung: Konzepte der Objektorientierung 1 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 2

Mehr

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln Daten verstecken und kapseln Sichtbarkeitsmodifikatoren: public Klasse, Variable oder Methode überall sichtbar und damit auch überall benutztbar. private private-variable sind nur in den Methoden sichtbar,

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Z.1 OO-Grundlagen mit Java Z.1 OO-Grundlagen mit Java. Fundamentale Konzepte der objektorientierten Programmierung: Abstraktion.

Z.1 OO-Grundlagen mit Java Z.1 OO-Grundlagen mit Java. Fundamentale Konzepte der objektorientierten Programmierung: Abstraktion. Z.1 OO-Grundlagen mit Java Z.1 OO-Grundlagen mit Java Fundamentale Konzepte der objektorientierten Programmierung: Abstraktion und Kapselung Z.1 1 Abstraktion Z.1 OO-Grundlagen mit Java Trennung von: Schnittstelle

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Klassenattribute und -methoden, Vererbung

Klassenattribute und -methoden, Vererbung Klassenattribute und -methoden, Vererbung Michael Dienert 27. März 2002 1 Prüfungsaufgabe Anwendungsentwicklung Winter 2001 Die folgende Aufgabe stammt aus der Abschlussprüfung für Fachinformatiker Anwendungsentwicklung

Mehr

4. Objektorientierung I Grundlagen der Programmierung 1 (Java)

4. Objektorientierung I Grundlagen der Programmierung 1 (Java) 4. Objektorientierung I Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 11. Oktober 2005 Einordnung im Kontext der

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Java Virtual Machine (JVM) Bytecode

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,

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

3 Java und Eclipse kennenlernen

3 Java und Eclipse kennenlernen Um Ihre Projekte möglichst effizient zu erledigen, ist es unerlässlich, eine Entwicklungsumgebung einzusetzen. Eclipse ist eine integrierte Entwicklungsumgebung (engl. Integrated Development Environment

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

Mehr