Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit
|
|
- Linda Weiß
- vor 5 Jahren
- Abrufe
Transkript
1 Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit Martin Wirsing Ziele en Begriff der einfachen und mehrfachen Vererbung verstehen Vererbung und Redefinition von Oberklassenmethoden verstehen Vererbungspolymorphie verstehen ie Klasse Object kennenlernen 2 in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, irk Pattinson 05/ Vererbung Vererbung Klasse ist Erbe einer Klasse, falls alle Attribute und Methoden von erbt, Superklasse von in UML: T1 m() x m() Attribute von = {y Attribute von Subklasse von in Java: class extends d.h besitzt alle Methoden und Attribute von und von allen Oberklassen von. Man nennt auch allgemeiner als bzw. spezieller als. T2 y n() Methoden von = {n() Methoden von Folgerung: ie Vererbungsbeziehung ist transitiv: Wenn von B erbt, dann besitzt auch alle Attribute und Methoden von B 1
2 Beispiel: Sparkonto Vererbung Ein Sparkonto ist ein Bankkonto, bei dem Zinsen gezahlt werden: BankAccount SavingsAccount double interestrate SavingsAccount (double rate) void addinterest () 5 public class SavingsAccount extends BankAccount { private double interestrate; public SavingsAccount(double rate) { super(0); interestrate = rate; public void addinterest() { double interest = getbalance() * interestrate/100; // auf das Attribut balance kann hier Implementierung in Java //nicht zugegriffen werden deposit(interest); // geerbte Methode Zugriff auf Konstruktor der Oberklasse siehe später 6 7 Ist ist Erbe von, so gilt: Vererbung man kann von aus nicht direkt auf die privaten Attribute von zugreifen, sondern nur mittels nichtprivater (geerbter) Zugriffsmethoden von. Eine Variable der Klasse kann jede nicht-private Methode von aufrufen; Einer Variablen der Klasse kann man ein Objekt eines Nachfahren zuweisen. Beispiel: d =...; c = d; Umgekehrt kann man einer Variablen vom Typ KEIN Objekt einer Vorfahrenklasse zuweisen. Beispiel: d1 = c; //falsch! Abhängigkeitsrelation (Verwendungsrelation, engl. dependency) UML A Beispiel: In unserem Beispiel erhalten wir BankAccount 8 SavingsAccount AccountMain 2
3 9 10 Beispiel: AccountMain in Java Redefinition von Methoden public class AccountMain { public static void main(string)[] args) { SavingsAccount sparkonto = new SavingsAccount(5); BankAccount konto1 = sparkonto; //ok Sparkonto vom //spezielleren Typ konto1.deposit(1000); // ok // konto1.addinterest(); // nicht ok, da konto1 // nicht den Typ einer // Subklasse hat (SavingsAccount)konto1.addInterest(); // ok, wegen Typcast sparkonto.getbalance(); // ok, geerbte Methode konto1.getbalance(); // ok In vielen Fällen kann man die Implementierung einer Methode m nicht direkt von der Superklasse übernehmen, da z.b. die neuen Attribute in der Superklasse nicht berücksichtigt werden (können). ann ist es nötig, für die Erbenklasse eine neue Implementierung von m anzugeben. Redefinition von m in UML: Methodenkopf von m wird in der Erbenklasse noch einmal angegeben; Java: neue Implementierung für m im Erben Bemerkung: Bei der Redefinition wird die alte Methode nicht überschrieben; man kann auf sie mit der speziellen Variable super zugreifen. Genauer gesagt, greift man mit super.m() auf die nächste Methodenimplementierung in der Vererbungshierarchie zu. Redefinition von Methoden und Konstruktoren Beispiel: Girokonto Bei einem Girokonto werden bei jeder Transaktion Gebühren verlangt Redefinition nötig heckingaccount deductfees deposit withdraw BankAccount deposit withdraw getbalance SavingsAccount addinterest 11 Redefinition von Methoden Statische Konstanten, die für jede Instanz public class heckingaccount extends BankAccount von heckingaccount { private double InterestRate; private int transactionount; public static final int FREE_TRANSATIONS = 3; gelten. public static final double TRANSATIONS_FEE = 0.3; public void deposit(double d) { super.deposit(d); // Aufruf von BankAccount::withdraw transactionount++; public void withdraw(double d) { super.withdraw(d); // Aufruf von BankAccount::deposit transactionount++; 12 3
4 13 14 Redefinition von Methoden Redefinition von Konstruktoren Fortsetzung public void deductfees() { if (transactionount > FREE_TRANSATIONS) { double fees = TRANSATIONS_FEE * (transactionount - FREE_TRANSATIONS); super.withdraw(fees); transactionount = 0; Zugriff auf einen Konstruktor einer Superklasse: super(); // parameterloser Konstruktor bzw. super(p 1,...,p n ); // Konstruktor mit n Parametern Bemerkung: ieser Aufruf muß die erste Anweisung des Subklassenkonstruktors sein Redefinition von Konstruktoren Falscher Zugriff auf super Beispiel: heckingaccount public heckingaccount(double initialbalance) { super(initialbalance); // muß 1. Anweisung sein transactionount = 0; Äquivalent dazu könnte man die Methode deposit verwenden: public heckingaccount(double initialbalance) { transactionount = 0; super.deposit(initialbalance); // super.m() kann // überall im Rumpf // vorkommen Man kann mit super(...) nur auf den Konstruktor der direkten Oberklasse zugreifen, aber nicht transitiv auf Konstruktoren weiter oben liegender Klasse. ie ompilerausgabe für diesen, im folgenden Beispiel zu findenden Fehler lautet: >java.java.java:17: cannot resolve symbol symbol : constructor B (int,int) location: class B super(a, b); ^ 1 error 4
5 17 18 Redefinition von Methoden und Konstruktoren Vererbungspolymorphie und dynamisches Binden class A { A(int a, int b) { System.out.println(a); System.out.println(b); A(){ class B extends A { B(int a, int b, int c) { super(a, b); class extends B { (int a, int b, int c, int d) { super(a, b); public static void main(string args[]) { c = new (1, 2, 3, 4); Vererbungspolymorphie Man spricht von Vererbungspolymorphie, wenn eine Methode von Objekten von Subklassen aufgerufen werden kann ynamisches Binden Falls eine Methode T m(t 1 x 1,..., T n x n ) mehrere Implementierungen besitzt (die im Vererbungsbaum übereinander liegen), so wird bei einem Aufruf o.m(a 1,..., a n ) die richtige Implementierung dynamisch bestimmt und zwar sucht man ausgehend von der Klasse des dynamischen Typs von o die speziellste Methodendeklaration, auf die der Methodenaufruf anwendbar ist (genauer siehe übernächste Folie). Man nennt dies auch dynamische Bindung, da der Methodenrumpf erst zur Laufzeit ausgewählt wird m() n() m() E m() F n() Beispiel für ynamische Bindung d = exp1; //exp1 sei vom Typ d.n(); //Aufruf von n in F f = exp2; //exp2 sei vom Typ F d = f; //R-Wert von d ist Instanz von F d.m(); //Aufruf von m in E d.n(); //Aufruf von n in F Vererbungspolymorphie und dynamisches Binden ynamisches Binden Methodenaufruf in Java von o.m(a 1,...,a n )mit o vom Typ und a 1,...,a n vom Typ T 1,..., T n. Ein Methodenkopf R m(p 1,..., P n ) der Klasse heißt anwendbar auf o.m(a 1,...,a n ), wenn gleich oder allgemeiner als ist und wenn jedes P i gleich T i oder allgemeiner als T i ist (für i=1,...,n). Für den Aufruf einer Methode wird zunächst zur Übersetzungszeit der speziellste Methodenkopf R m(p 1,..., P n ) bestimmt, der auf o.m(a 1,...,a n ) anwendbar ist. Zur Laufzeit suche die speziellste Klasse mit einer Methodendeklaration mit Namen m und Parametertypen P 1,..., P n, so daß allgemeiner oder gleich ist. Wähle diese Methodendeklaration für den Aufruf. 5
6 21 22 Formen der Polymorphie Formen der Polymorphie Ad hoc Polymorphie Polymorphie Überladen oercion Parametrische Polymorphie Universelle Polymorphie Vererbunngspolymorphie Polymorphie: aus dem Griechischen: vielgestaltig Überladen 2 oder mehrere Operationen mit demselben Namen, aber verschiedener Implementierung und Semantik Beispiel: Addition auf ganzen Zahlen und Gleitpunktzahlen oercion: Automatische Typanpassung Beispiel: Anpassung von Byte nach int nach double Formen der Polymorphie ie Klasse Object Parametrische Polymorphie : er gleiche Algorithmus für mehrere Typen Beispiel: Listenalgorithmen in SML kann auf Werte beliebiger Typen angewendet werden. Vererbungspolymorphie: Eine Methode der Klasse kann auch von Objekten eines Subtyps von aufgerufen werden. Beispiel: deposit von BankAccount kann auch von Instanzen von SavingsAccount aufgerufen werden. Object ist die allgemeinste Klasse in Java. Alle Klassen sind Erben von Object. Beispiel SavingsAccount BankAccount Object Point heckingaccount Hallo 6
7 25 26 ie Klasse Object ie Klasse Object ie Klasse Object besitzt u.a. die folgenden Methoden, die man häufig benötigt: Textrepräsentation von this String tostring(): ie tostring-methode erzeugt eine Textrepräsentation einer Klasse. Im Allgemeinen ist es nötig, für selbstdefinierte Klassen eine tostring-methode zu definieren. Object String tostring() boolean equals(object o)... n n Vergleich zweier Objekte Beispiel: BankAccount String tostring() { return BankAccount[balance is + balance + ] ; ie Klasse Object boolean equals(object o): equals vergleicht die Objektreferenzen von this und o. this o1 o2 : a = null b = 100 this.equals(o1) == true this.equals(o2) == false : a = null b = Zusammenfassung ie Abhängigkeitsbeziehung gibt an, daß Symbole der Klasse verwendet. ie Vererbungsbeziehung hat folgende Eigenschaften: Für Variablen gilt: a) Jedes Attribut von ist automatisch Attribut von. Möglicherweise kann man aber auch von nicht direkt darauf zugreifen! b) Ein neu definiertes Attribut von ist nicht Attribut von. c) Einer lokalen Variablen oder einem Parameter der Klasse kann ein Objekt der Klasse zugewiesen werden (aber nicht umgekehrt, dazu ist ein gültiger ast nötig!) 28 7
8 Zusammenfassung 29 Für Methoden gilt: a) Jede Methode von ist automatisch eine Methode von und kann daher mit Objekten von aufgerufen werden (Vererbungspolymorphie). Eine Methode von kann aber nicht von einer lokalen Variablen vom Typ aufgerufen werden. b) Soll in einem Methodenrumpf auf die Methode der Superklasse zugegriffen werden, verwendet man spezielle Variable super. c) In der Subklasse können Methoden redefiniert werden. Solche Methoden müssen im UML-iagramm der Klasse explizit genannt werden. 8
Vererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
MehrVererbung. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08
Vererbung Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Den Begriff der einfachen Vererbung verstehen Vererbung und Redefinition von
MehrBeziehungen zwischen Klassen
Beziehungen zwischen Klassen Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 2 Ankündigung Abgabe von Übungsblatt 6
MehrKlassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete
2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen
MehrKlassen und ihre Beziehungen I: Assoziation und Aggregation
Klassen und ihre Beziehungen I: Ziele Verstehen der Begriffe Assoziation, Aggregation und Komposition 2 Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, irk Pattinson 3 4 Assoziation
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrEinführung in die Programmierung für NF. Vererbung
Einführung in die Programmierung für NF Vererbung Ziele Vererbungsprinzip der objektorien=erten Programmierung verstehen und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrKapitel 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrKapitel 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
MehrKapitel 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
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrErste Java-Programme (Java Wiederholung & Vererbung)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
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,
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
Mehr12 Vererbung. 12 Vererbung. 12 Vererbung. 12 Vererbung
Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Idee: Finde Gemeinsamkeiten heraus! Säugetiere Organisiere in einer Hierarchie! Hominiden Wölfe
Mehr12 Vererbung. Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind.
Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere Hominiden Wölfe Menschen Affen Harald Räcke 298/656 Idee: Beobachtung Oft werden mehrere
Mehr12 Vererbung. Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind.
12 Vererbung Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere Hominiden Wölfe Menschen Affen Harald Räcke 298/656 12 Vererbung Idee:
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object
MehrBeobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere
12 Vererbung Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere Hominiden Wölfe Menschen Affen 30. Jan. 2018 Felix Brandt, Harald Räcke
MehrBeobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere
12 Vererbung Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere Hominiden Wölfe Menschen Affen 30. Jan. 2018 Felix Brandt, Harald Räcke
MehrBeobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere
12 Vererbung Beobachtung Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere Hominiden Wölfe Menschen Affen 30. Jan. 2018 Felix Brandt, Harald Räcke
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
Mehr12.1 Das Schlüsselwort super
12.1 Das Schlüsselwort super Manchmal ist es erforderlich, in der Unterklasse explizit die Konstruktoren oder Objekt-Methoden der Oberklasse aufzurufen. Das ist der Fall, wenn Konstruktoren der Oberklasse
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
MehrPraktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl
Praktikum SEP: Java-Programmierung WS 2018/19 Modularisierung Thomas Lemberger und Martin Spießl Basierend auf Folien von Matthias Dangl und Karlheinz Friedberger 1 / 10 Modularisierung Module gliedern
MehrGrundzüge der Programmierung. Wiederverwendung POLYMORPHIE
Grundzüge der Programmierung Wiederverwendung POLYMORPHIE Inhalt dieser Einheit Polymorphie: Upcasting Polymorphie Polymophie Theorie 2 Upcasting Def.. 1 Bsp. Shape Upcasting erlaubt die Verwendung eines
Mehr2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert
2. Vererbung und Polymorphie Vererbung (1/2) Vererbung mit extends Konstruktoren bei der Vererbung Überladen von Methoden - statische Polymorphie Casten Dynamische Polymorphie Klasse Object Eine Unterklasse
MehrTafelübung 07 Algorithmen und Datenstrukturen
Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
Mehr9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1
9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
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
MehrListe Programmieren Java Überblick
Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrVererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1
Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
MehrJAVA 05: Objektorientierte Konzepte
Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen
MehrProgrammierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.
Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto
Mehr1 Vererbung. Beobachtung: Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere. Hominiden.
1 Vererbung Beobachtung: Oft werden mehrere Klassen von Objekten benötigt, die zwar ähnlich, aber doch verschieden sind. Säugetiere Hominiden Wölfe Menschen Affen 1 Idee: Finde Gemeinsamkeiten heraus!
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 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,
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
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
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.
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
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
MehrSilke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 3 Schnittstellen 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
MehrVorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus
Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:
Mehr3 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
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
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
MehrDas Ersetzbarkeitsprinzip
Das Ersetzbarkeitsprinzip U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Dieses Ersetzbarkeitsprinzip benötigt man für den Aufruf einer Routine
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrProgrammieren in Java
Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von
MehrPolymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette
MehrProgrammiertechnik Vererbung & Polymorphismus für Fortgeschrittene
Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette Problem:
MehrPolymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
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
MehrAbschnitt 10: Typisierte Klassen
Abschnitt 10: Typisierte Klassen 10. Typisierte Klassen 10.1 Einführung: Grenzen der Typ-Polymorphie durch Vererbung 10.2 Grundlagen 10.3 Vererbung bei typisierten Klassen 10.4 Wildcards, obere und untere
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 018/19 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 11 Besprechung: 1. 5.01.019 (KW 4) Vorbereitende
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 8: Vererbung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 1. Dezember 2015 Martin
MehrProgrammieren I. Kapitel 8. Vererbung
Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 11 Besprechung: 15. 19.01.018 (KW 3) Vorbereitende
MehrKapitel 2: OO Grundlagen
Kapitel 2: OO Grundlagen 2.1 Objekte zum Leben erwecken (und Grundmechanismen verstehen) 2.2 Statische Elemente nutzen & vererben 2.3 Kooperation über Interfaces Lothar Schmitz UniBwM (teils nach Prof.
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
MehrAssoziation und Aggregation
Assoziation und Aggregation Prof. Dr. Christian Böhm in Zusammenarbeit mit Michael Eckert und Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfows WS 07/08 2 Ziele Verstehen der Begriffe Assoziation und
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots. falls Zeit: Scheduling 8.11.
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots falls Zeit: Scheduling 8.11.2016 IT I - VO 5 1 Organisatorisches VO nächste Woche im Peter-Tunner-HS! Tutorium
MehrJava Idioms. Basic und Advanced Java Coding Style. Prof. Dr. Nikolaus Wulff
Java Idioms Basic und Advanced Java Coding Style Prof. Dr. Nikolaus Wulff Java Idiome Operator == versus equals Methode equals und hashcode Vermeide NullPointer Java Konstruktoren Function Pointers, Interfaces
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
Mehr