5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte
|
|
- Frieder Hofmann
- vor 3 Jahren
- Abrufe
Transkript
1 5 Vererbung Subklassen, Superklassen, Pakete Zugriffsrechte Wiederverwendung von Code Konventionelle Methode: Wähle einen Quelltext, der ein ähnliches Problem bearbeitet und passe diesen Text auf das neue Problem an. der Quelltext muß verstanden werden abhängige Quelltexte müssen ebenfalls geändert werden umfangreiche Neuübersetzungen werden nötig Objektorientierter Ansatz: Schon übersetzte und getestete Klassen werden übernommen und daraus neue dem Problem angepasste (Sub-)Klassen abgeleitet. nur die neuen Daten und Methoden müssen geschrieben werden existierende Implementationen und Abhängigkeiten bleiben unberührt Nur neu erstellte Methoden müssen übersetzt werden
2 Subklassen Eine Klasse Y wird als direkte Subklasse einer Klasse X definiert, indem man das Schlüsselwort extends verwendet class Y extends X {... Die Klasse X heißt dann direkte Superklasse von Y. Die Subklasse Y "erbt" von X alle (nicht private modifizierten) Variablen und Methoden. Ausnahme: Konstruktoren und static Initialisierer werden nicht mitvererbt. Über eine Kette von Ableitungen entsteht eine beliebige (indirekte) Sub- bzw. Super-Klasse. Warum die Ausnahmen? Konstruktoren brauchen deshalb nicht vererbt zu werden, weil in jedem Konstruktor, der nicht explizit einen Konstruktor der Superklasse ausführt (als ersten Befehl!), automatisch (implizit) der Standardkonstruktor super(); der Superklasse (als erster Befehl) ergänzt wird. Static Initialisierer sind Anweisungsblöcke, die ausgeführt werden, wenn eine Klasse zum ersten mal angesprochen wird. Es ist deshalb unsinnig, sie an die Unterklassen zu vererben, da eine Klasse ohnehin zunächst alle ihre Superklassen anspricht.
3 Beispiel: Wecker(1) // SignalTimer.java import java.io.*; class SignalTimer extends Timer { boolean aktiv; int minsig, secsig, msecsig; static final char SIGNAL = '\u0007'; void sigtick() { tick(); if (aktiv) if (min == minsig && sec == secsig && msec == msecsig) {PrintWriter out = new PrintWriter(System.out, true); out.print(signal); out.println(zeigean); out.flush(); aktiv = false; Beispiel: Wecker(2) class Timer { int min, sec, msec; void stellen(int i, int j, int k) { min = i; sec = j; msec = k; void tick() { if (++msec == 1000) { msec = 0; if (++sec == 60) { sec = 0; min++; String zeigean() {return min +":"+ sec +","+ msec +" Sekunden" ;
4 Beispiel: Wecker(3) Die Variablen von SignalTimer eigene Variablen Methoden: SIGNAL aktiv sigtick() minsig secsig msecsig von Timer geerbte Variablen Methoden: min stellen(..) sec tick() msec zeigean() Beispiel: Wecker(4) // SignalTimerTest.java class SignalTimerTest { public static void main(string[] args) { SignalTimer s1 = new SignalTimer(), s2 = new SignalTimer(); s2.aktiv = s1.aktiv = true; s1.msecsig = 10; s2.msecsig = 750; for (int i = 0; i < 1500; i++) { s1.sigtick(); s2.sigtick();
5 Beispiel: Wecker(5) Außer dem Piepton (SIGNAL) ergibt sich die Ausgabe: verdeckte Variablen Wir hatten schon gesehen, daß es in Java kein absolutes Verbot gibt, denselben Bezeichner in verschiedenen Rollen zu verwenden. In demselben Block darf derselbe Name nicht für verschiedene Variablen benutzt werden, wohl dürfen aber Instanzvariablen in abgeleiteten Klassen oder Methoden als Parameter oder lokale Variablen verwendet werden. In diesem Fall ist die entsprechende Instanzvariable innerhalb der abgeleiteten Klasse bzw. der Methode verdeckt (verschattet), d.h. unter ihrem Namen nicht mehr zugreifbar, weil die lokal gültige Variable angesprochen wird.
6 this. Im Beispiel Timer hätten wir auch die Methode stellen mit den Parametern min, sec, msec definieren können: Um nun allerdings auf die verdeckten Instanzvariablen min, sec, msec der Klasse Timer zugreifen zu können, müssen diese mit this. spezifiziert werden, da sonst die (lokalen) Parameter min, sec, msec von stellen angesprochen würden. void stellen(int min, sec, msec) { this.min = min; this.sec = sec; this.msec = msec; Ein mit this. spezifizierter Name spricht also die verdeckten Instanz-Variablen (bzw. -Methoden) an. super. Auch in unserem Wecker-Beispiel hätten wir in der abgeleiteten Klasse SignalTimer als Instanzvariablen die Bezeichner min, sec, msec und auch tick als Methodennamen verwenden können. Damit sind allerdings die Instanzvariablen min, sec, msec sowie tick() der Superklasse Timer verdeckt. Um doch noch auf die ererbten aber verdeckten Instanzvariablen und Methoden zugreifen zu können, müssen sie mit super. spezifiziert werden: void tick() { super.tick(); if (aktiv) if (super.min == min && super.sec == sec && super.msec == msec) {Print...
7 verdeckte static Variablen Werden Klassenvariablen einer Klasse X in einer abgeleiteten Klasse Y durch deren gleichnamige Variablen verdeckt, so kann statt mit super. auch unmittelbar mit der Spezifikation über den Klassennamen X. (normale Punktnotation) auf die Klassenvariablen zugegriffen werden. Bei Instanzvariablen ist die einfache Punktnotation (über den Namen der Instanz) unmöglich (bzw. ungleich schwieriger), weil der Klasse bereits die Namen ihrer Instanzen bekannt sein müßten. Überladen Beim Überladen von Namen, werden ebenfalls Namen mehrfach benutzt, bleiben aber für die Klasse alle sichtbar, weil Java sie an ihrem Gebrauch unterscheiden kann. Eine Variable und Methoden können denselben Namen haben, weil sie unterschiedlich verwendet werden (ohne bzw. mit Klammern). Methoden verschiedener Signatur können denselben Namen haben, weil sie an der verwendeten Parameterfolge unterschieden werden können (vgl. die verschiedenen Konstruktoren von Timer). Variablen (bzw. Methoden) verschiedenen (Rückgabe-) Typs kann Java nicht immer an ihrer Verwendung unterscheiden.
8 Poymorphie Auch Methoden (wie oben tick()) können in einer abgeleiteten Klasse überschrieben werden, falls sie nicht final (= konstant) spezifiziert worden sind. Dies ist immer dann vernünftig, wenn es Methoden gibt, die nach außen hin dasselbe tun, aber intern wegen verschiedener Datenstrukturen unterschiedlich arbeiten müssen. (etwa ggt wird man bei allen Zahlentypen gleich nennen wollen, aber etwa in BigNums anders implementieren als in Integer). Diese Eigenschaft, daß Methoden gleicher Signatur je nach Einsatzobjekt unterschiedlich realisiert sein können, nennt man Polymorphie. // Kto.java import java.io.*; class Kto Beispiel Konto(1) { static PrintWriter out = new PrintWriter(System.out, true); String inhaber; long nummer; double stand, habenzins; Kto(String inhaber, long nummer, double stand, double habenzins) { this.inhaber = inhaber; this.nummer = nummer; this.stand = stand; this.habenzins = habenzins; void info() { out.println("\ninhaber: " + inhaber + "\tkonto-nr: " + nummer + "\nkonto-stand: " + stand + " DM" + "\nhabenzinsen: " + habenzins + " %");
9 // GiroKto.java class GiroKto extends Kto { private double sollzins, kreditlimit; Beispiel Konto(2) GiroKto(String inhaber, long nummer, double stand, double habenzins, double sollzins, double kreditlimit) { super(inhaber, nummer, stand, habenzins); this.sollzins = sollzins; this.kreditlimit = kreditlimit; void info() { super.info(); out.println("\tsollzinsen: " + sollzins + " %" + "\nlimit: " + kreditlimit + " DM"); // weitere Methoden: einzahlen, abheben,... // FestgeldKto.java class GiroKto extends Kto Beispiel Konto(3) { private int restlaufzeit; private boolean zinsbesteuerung; FestgeldKto(String inhaber, long nummer, double stand, double habenzins, int restlaufzeit, boolean zinsbesteuerung) { super(inhaber, nummer, stand, habenzins); this.restlaufzeit = restlaufzeit; this.zinsbesteuerung = zinsbesteuerung; void info() { super.info(); out.println("\trestlaufzeit: " + restlaufzeit + " Monate\n Zinsbesteuerung: " + ((zinsbesteuerung)? " Ja" : " Nein") ); // weitere Methoden: auflösen, verlängern,...
10 final Methoden und Klassen Außer Variablen, die durch das Schlüsselwort final zu Konstanten werden, können auch Methoden und Klassen mit final spezifiziert werden. Wird eine Methode mit final spezifiziert, kann sie in einer Subklasse nicht mehr überschrieben werden. Dies wird insbesondere für hardwarenahe oder plattformspezifische Methoden in Java Bibliotheken eingesetzt. Auch Klassen können mit final class als nicht mehr ableitbar spezifiziert werden. (Dadurch werden natürlich auch all deren Methoden implizit final, denn da die Klasse nicht abgeleitet werden kann, können auch die Methoden nicht überschrieben werden. Konstruktion von Objekten Ist die erste Anweisung des Konstruktors this(...) wird zu diesem Konstruktor übergegangen. Ist die erste Anweisung des Konstruktors super(...), wird dieser Konstruktor der Superklasse ausgeführt. Andernfalls wird super() ergänzt, d.h. der Standardkonstruktor der Superklasse ausgeführt. Danach werden alle in der Klasse mit Initialisierern deklarierten Instanzvariablen mit diesen Werteninitalisiert. Abschließend werden die übrigen Anweisungen des Konstruktors ausgeführt.
11 // abgeleitete Klassen class K //Basisklasse { static int k=1; int m; K(){m=10; class L extends K //abgeleitet { int l = 0xff00ff;... L Beispiel = new L()... Dieser Aufruf von new L() erzeugt die folgenden Einzelschritte: Beispiel 1. falls K noch nicht referenziert worden ist, Reservierung von Speicherplatz für k initialisiert mit Reservierung von Speicherplatz für die int s l,m initialisiert mit Aufruf des Konstruktors L(), den Java als {super() ergänzt hat. 4. Aufruf des Konstruktors K(), in dessen Rumpf Java super() ergänzt hat 5. Aufruf des Konstruktors Object(){ 6. Initialisierung von k mit 1, falls K zum ersten mal referenziert wird. 7. Ausführung von K(): initialisierung von m mit Initialisierung von l mit 0xff00ff Da L() keine weiteren Anweisungen enthält ist die Konstruktion abgeschlossen. abstract Abstrakte Klassen sind ein Hilfsmittel, um eine Strukturierung von Klassen vor ihrer eigentlichen Implementation vorzugeben. In dem Beispiel Konto haben wir eine Klasse Kto definiert, die selbst als Ojekt nicht in Frage kommt, sondern lediglich eine der Ausprägungen GiroKto oder FestgeldKto. Eine Klasse, die selbst keine Instanzen besitzen soll, wird mit dem Schlüsselwort abstract gekennzeichnet. In einer abstrakten Klasse kann es auch abstrakte Methoden geben, die noch keinen Rumpf besitzen. Diese werden auch mit abstract spezifiziert und müssen dann in jeder nicht abstrakten Subklasse überschrieben werden, z.b.: abstract void info();
12 Pakete Zur besseren Strukturierung können Java-Programme in Pakete zusammengefaßt werden, dies geschieht mit einer ersten Anweisung package <Paketname> vor den Import Anweisungen und der Klassendefinition erfolgen Die Paketnamen können ihrerseits noch mittels Punktnotation strukturiert sein, z.b. package JavaUebung.Blatt1 oder package JavaUebung.Blatt2 etc. Wird der Javacompiler mit der Option -d aufgerufen, so wird im aktuellen Verzeichnis ein Unterverzeichnis(-baum) angelegt (z.b. JavaUebung/Blatt1), in das die übersetzte Klasse aufgenommen wird. Geltungsbereich(1) Pakete, Klassen, Interfaces, Variablen, Methoden, lokale Variablen und Parameter werden in Java durch eine Deklaration eingeführt. Der Geltungsbereich (scope) ist der Java-Code, in dem man den Gegenstand einfach durch seinen deklarierten Namen ansprechen kann. Der Geltungsbereich von Paketen hängt von der Systemkonfiguration (gesetzte Pfade) ab, d.h. ob das Betriebssystem das entsprechende Unterverzeichnis finden kann. Der Geltungsbereich eines Klassennamens besteht aus allen Übersetzungseinheiten desselben Pakets, in dem die Klasse deklariert ist.
13 Geltungsbereich(2) Der Geltungsbereich eines Klassenelements - deklariert oder geerbt - ist der gesamte Rumpf der Klassendeklaration. Der Geltungsbereich einer lokalen Variablen ist der Rest des Blocks, in dem die Deklaration enthalten ist. Speziell eine im for-init-teil einer for-anweisung deklarierte lokale Variable hat nur den Rest der for-anweisung als Geltungsbereich. Der Geltungsbereich eines Methodenparameters ist der gesamte Rumpf der Methode. Alle Gegenstände außer lokalen Variablen sind über qualifizierte Namen (Punktnotation) auch von außerhalb ihres Geltungsbereichs ansprechbar. Zugriffsrechte Neben den Zugriffsbeschränkungen durch Geltungsbereiche hat Java auch ein System von expliziten Zugriffsrechten, die einen unerwünschten Zugriff im Geltungsbereich verhindern können, die Zugriffsrechte werden über die Modifikatoren public, private, protected vergeben. public: Aller Java-Code mit Zugriff auf das Paket hat darauf Zugriff. private: Diese Elemente sin nur innerhalb ihrer Klasse zugreifbar. standard (ohne Modifikator): Auf dieses Element hat jedes Element desselben Pakets Zugriff. protected: Elemente sind in allen abgeleiteten Klassen und im eigenen Paket zugreifbar.
14 Vererbung von Zugriffsrechten Grundsätzlich erbt eine Klasse mit den Elementen auch deren Zugriffsrechte, dies bedeutet, daß beim Überschreiben die Zugriffsrechte nicht eingeschränkt werden dürfen. Modifizierer Zugriff für public allen Java-Code protected eigenes Paket und Subklassen - eigenes Paket private eigene Klasse Beim Überschreiben dürfen die Zugriffsrechte jedoch erweitert werden (in der Tabelle weiter nach oben). Import Deklarartionen Elemente aus anderen Paketen können mit voll qualifiziertem Namen stets angesprochen werden: java.io.bufferedreader in =... Um diese umständliche Schreibweise zu vereinfachen, kann man Elemente eines Pakets import java.io.bufferedreader; oder auch ganze Pakete import java.io.*; importieren, dann können die Elemente des Pakets einfach unter ihrem Namen angesprochen werden, so als gehörten sie selbst dem Paket an. BufferedReader in =... Import Deklarationen stehen vor der Klassendeklaration.
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
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
3 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
5.6 Vererbung. Vererbung
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
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
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
Kapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
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:
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
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:
Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.
Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,
Einführung in die. objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie
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
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
Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
5.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
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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/
Klassen in Java. Klassen
Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus
5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
Algorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
Java Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
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
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
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
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
EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
GetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
Datenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
Klassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
Ü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
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
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
Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz
Stefan Brass: OOP (Java), 16. Pakete, Zugriffsschutz 1/30 Objektorientierte Programmierung Kapitel 16: Pakete, Zugriffsschutz Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14
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:
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.
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
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
Javakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
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();
Abschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
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
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
Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java
Kapitel 2 Java: Der Einstieg Im vorigen Kapitel haben wir die Syntax der Sprache Mini-Java kennengelernt. Bevor wir in Kapitel 3 ausführlich auf Syntax und Semantik der Programmiersprache Java eingehen
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:
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:
Abschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
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,
Objektorientierte 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
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
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
5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
Kurs OPR. Objektorientierte Programmierung
Kurs OPR Objektorientierte Programmierung Lektion: 005-Vererbung, Polymorphismus Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1 Vererbung
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006
Universität Mannheim Fakultät für Mathematik und Informatik Dr. Heinz Kredel Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Name:.................................
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
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
Grundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
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
Objective-C CheatSheet
App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController
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
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
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
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
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
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
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
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...
Objektorientierte Programmierung
Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with
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)
Programmierkurs Python I
Programmierkurs Python I Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht mehr zu OOP: - Hintergründe - Vererbung Methoden zur Operatoren-Überladung
Innere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
Folge 18 - Vererbung
Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,
Algorithmen 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
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
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
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba
Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung
II. 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
Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
Vererbung, Polymorphismus
Vererbung, Polymorphismus Einführung Beispiel Automobilbau: Eine Firma produziert eine Limousine Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus Ein Kunde
Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf
16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen
Kapitel 19: Klassen und Unterklassen
Kapitel 19: Klassen und Unterklassen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
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
i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging
Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des
Einführung in die Programmierung Blockkurs Java
Michael Bader 19. 25. Februar 2003 Donnerstag Inhaltsübersicht Java pur die Java-Welt außerhalb von BlueJ Adressierung von Klassen und Paketen Java Applications Klassenmethoden und -variablen Ein- und
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 und ausführen können, Möglichkeiten der Kommentierung
Android will doch nur spielen. Java Eine kurze Einführung
Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach
13 OOP MIT DELPHI. Records und Klassen Ein Vergleich
13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte 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:
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
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
Teil 1: Grundeigenschaften von Rechnern und Software
Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer