Java Grundlagen 2 - OOP
|
|
- Georg Voss
- vor 5 Jahren
- Abrufe
Transkript
1 Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke
2 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein Kreis und ein Dreieck. Wenn der Benutzer auf eine Form klickt, so soll diese sich um 360 drehen und es soll eine AIF Audiodatei abgespielt werden, welche für jede Form eine andere ist. Zwei Programmierer: Larry und Brad Wer zuerst liefert, bekommt einen neuen Bürostuhl. Larry arbeitet prozedual Brad arbeitet objektorientiert 1 Entnommen aus Head First Java - Second Edition, Kapitel 2
3 Die erste Version Larry überlegt sich: Was muss das Programm machen? Welche Methoden werden dazu gebraucht? rotate und playsound rotate ( shapenum ) { // Rotiere Form um 360 Grad } playsound ( shapenum ) { // Schau nach, welche AIF zur Form gehoert // Spiele Datei ab } Brad überlegt sich: Welche Dinge tauchen im Programm auf? Die Formen, aber auch der User, der Click, der Sound etc. (diese werden hier vernachlässigt) class Triangle { rotate () { // Drehe ein Dreieck } playsound () { // Spiele AIF fuer ein Dreieck ab } } class Circle { rotate () { // Drehe einen Kreis } playsound () { // Spiele AIF fuer einen Kreis ab } } class Square { rotate () { // Drehe ein Rechteck } playsound () { // Spiele AIF fuer ein Rechteck ab } }
4 Aber... Larry wird als erster fertig. Aber es gibt eine Änderung der Spezifikation: Erweiterung der Spezifikation Es soll nun eine amöbenartige Form in der GUI geben. Wenn sie angeklickt wird, soll sie sich wie die anderen Formen drehen und eine HIF Sounddatei abspielen. (Bild aus HFJ)
5 V2 Larry muss zwar nicht viel an seinem Code ändern, aber er muss bereits getesteten und erprobten Code ändern. 1 playsound ( shapenum ) { 2 if (/* Form ist keine Amoebe */) { 3 // Schau nach, welche AIF zur Form gehoert 4 // Spiele Datei ab 5 } else { 6 // Spiele Amoeben HIF Sounddatei ab 7 } 8 } Brad schreibt eine neue Klasse für die Amöbe. Den bereits existierenden Code für die anderen Formen muss er nicht anfassen. 1 class Amoeba { 2 rotate () { 3 // Drehe Amoebe 4 } 5 playsound () { 6 // Spiele HIF fuer ein Amoebe ab 7 } 8 }
6 Der Projektmanager schlägt wieder zu Larry wird wieder als erster fertig. Aber es noch gibt eine Änderung der Spezifikation: Änderung der Spezifikation Brad und Larry haben die Amöbe um den Mittelpunkt des kleinsten Rechtecks um die Amöbe gedreht. Die Amöbe soll sich um einen frei festlegbaren Punkt drehen. (Bild nach HFJ)
7 V3 Larry muss diesmal viel ändern, da rotate neue Paramter bekommen hat. Er muss also auch alle Stellen ändern, andenen rotate benutzt wird. 1 rotate ( shapenum, xpt, ypt ) { 2 if (/* Form ist keine Amoebe */) { 3 // Rotiere um Box - Mittelpunkt 4 } else { 5 // Rotiere um xpt und ypt 6 } 7 } Brad passt die rotate-methode der Amöben-Klasse an. Für den Rotationspunkt erweitert er die Klasse um zwei Attribute. Ansonsten muss er nur Stellen verändern, an denen Amöben erzeugt werden, anderen Code muss er nicht anfassen. 1 class Amoeba { 2 int xpoint 3 int ypoint 4 rotate () { 5 // Drehe Amoebe um xpoint und ypoint 6 } 7 playsound () { 8 // Unveraendert 9 } 10 }
8 Der Trick mit der Vererbung Verursacht Brads OOP Ansatz dopelten Code zwischen den Methoden? Nicht umbedingt Auslagern gemeinsamer Eigenschaften in übergeordnete Klasse Vererbung Bild aus Head First Java - Second Edition
9 Bild aus Head First Java - Second Edition Noch ein Trick: Spezialisierung durch Überschreiben Nun würden aber alle Formen gleich rotieren Die Amöbe würde das Verhalten der Elternklasse erben. Methoden können in Unterklassen geändert werden Überschreiben von Methoden
10 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen Einfacheres Ändern von Programmen Wiederverwendung von Programmteilen Markus Reschke Java Grundlagen 2 - OOP 10 Institut für Programmierung und Reaktive Systeme
11 Klassen in Java 1 ZugriffsBeschraenker class KlassenName { 2 // Attribute 3 // Methoden 4 } Eine Klasse mit public-zugriffsbeschränker pro.java-datei
12 Attribute in Java Attribute beschreiben die Daten, die jedes Objekt speichert Klasse gibt an, welche Attribute Objekte dieser Klasse haben Jedes Objekt verfügt über eine eigene Kopie dieser Attribute Änderungen an den Attributen eines Objektes wirken sich nur auf dieses Objekt aus Attribute sollen fast immer private sein. Werden fast wie lokale Variablen definiert. 1 ZugriffsBeschraenker class KlassenName { 2 T attributsname ; 3 T attributsname = Initialisierungswert. 4 // Methoden 5 }
13 Methoden Methoden sind die Aktionen, die mit einem Objekt ausgeführt werden können Statische Methoden kennen wir schon Unterschied zu statischen Methoden: Sie arbeiten auf einzelne Objekte 1 ZugriffsBeschraenker class KlassenName { 2 // Attribute 3 Zugriffsbeschraenker Rueckgabetyp name ( T1 Paramter1,...) { 4 // Anweisungen 5 } 6 }
14 Zugriffsbeschränker Zugriffsbeschränker erlauben es, Elemente von Klassen vor dem Zugriff von außen versteckt. Dies erschwert unsachgemäße Verwendung von Objekten und erleichtert Kapselung. Beschränker Klasse Paket Unterklassen Rest public Y Y Y Y protected Y Y Y N keine Angabe Y Y N N private Y N N N Normalerweise reichen public und private. Markus Reschke Java Grundlagen 2 - OOP 14 Institut für Programmierung und Reaktive Systeme
15 Beispiel: Counter 1 public class Counter { 2 private int count ; 3 4 public void increase () { 5 count ++; 6 } 7 8 public int getcount () { 9 return count ; 10 } public void reset () { 13 count = 0; 14 } 15 }
16 Erzeugen von Objekten Wir können nun selber Klassen erstellen, wie werden diese nun verwendet? new erzeugt neue Objekte auf dem Heap. Syntax: new Klassenname(Konstruktorparameter) new gibt eine Referenz auf das neue Objekt zurück Stack Heap obj, Counter, Counter { count, int, 1 description, String, } String {... } 1 Counter c = new Counter ();
17 Der. Operator Wir können jetzt neue Objekte erzeugen. Wie benutzt man nun ein Objekt? Der.-Operator kann auf eine Referenz angewendet werden, um auf die Attribute und Methoden des referenzierten Objektes zuzugreifen. Voraussetzung ist, dass der Zugriff erlaubt ist (Beschränker) Syntax: referenz.element 1 Counter c = new Counter (); 2 c. increase (); 3 c. increase (); 4 c. reset (); Markus Reschke Java Grundlagen 2 - OOP 17 Institut für Programmierung und Reaktive Systeme
18 Konstruktoren Oft müssen beim Erzeugen von Objekten Attribute initialisiert werden Vom Benutzer der Klasse zu verlangen, dass er die Attribute selber nach dem Erzeugen setzt, kann zu Fehlern führen Konstruktoren sind Methoden, die beim Erzeugen des Objektes aufgerufen werden. Kein Rückgabetyp, Gleicher Name wie Klasse Falls keiner selber definiert: Default Konstruktor ohne Parameter Klassenname() wird automatisch erzeugt Konstruktoren werden nicht vererbt
19 Beispiel: Counter 1 public class Counter { 2 private int count ; 3 4 public Counter () { 5 this (1) ; 6 } 7 8 public Counter ( int start ) { 9 count = start ; 10 } public void increase () { 13 count ++; 14 } public int getcount () { 17 return count ; 18 } public void reset () { 21 count = 0; 22 } 23 }
20 Verdecken von Attributen und this Lokale Variablen und Methodenparameter können Attribute verdecken Zugriff auf lokale Variable anstatt aufs Attribut this ist eine Referenz auf das aktuelle Objekt. Kann benutzt werden, um trotz des Verdeckens auf das Attribut zuzugreifen. Markus Reschke Java Grundlagen 2 - OOP 20 Institut für Programmierung und Reaktive Systeme
21 Was Passiert? 1 public class Counter { 2 private int count = 100; 3 4 public void nichtverdeckt () { 5 System. out. println ( count ); 6 } 7 8 public void verdeckt () { 9 int count = 0; 10 System. out. println ( count ); 11 } public void verdecktparam ( int count ) { 14 System. out. println ( count ); 15 } public void verdecktthis () { 18 int count = 0; 19 System. out. println ( this. count ); 20 } 21 }
22 static static markiert Elemente von Klassen als statisch Wird normalerweise hinter dem Zugriffsbeschränker angegeben Für statische Attribute existiert nur eine einzige Kopie, die von allen Objektinstanzen dieser Klasse geteilt wird. Statische Methoden können ohne Objektinstanz genutzt werden, dürfen aber auch nur auf statische Elemente der Klasse zugreifen Nicht-statische Attribute existieren ja nur für Objektinstanzen, statische Methodenaufrufe operieren auf keinem Objekt Zugriff mit Klassenname.Element Markus Reschke Java Grundlagen 2 - OOP 22 Institut für Programmierung und Reaktive Systeme
23 Was Passiert? 1 public class Statisch { 2 public int a = 0; 3 public static int b = 1; 4 5 public static void main ( String [] args ) { 6 Statisch n1 = new Statisch (); 7 n1. a = 1; 8 Statisch n2 = new Statisch (); 9 n2. a = 2; 10 System. out. println (n1.a); 11 System. out. println (n2.a); 12 n1. b = 5; 13 System. out. println (n1.b); 14 System. out. println (n2.b); 15 System. out. println ( Statisch.b); 16 } 17 }
24 Überladen von Methoden Mehrere Methoden in einer Klasse können den selben Namen haben Müssen sich in der Parameterliste unterscheiden (durch andere Typen, andere Anzahl von Parametern oder beidem) Rückgabetyp wird nicht zur Unterscheidung herangezogen Auswahl der passenden Methode geschieht zur Kompilierzeit Markus Reschke Java Grundlagen 2 - OOP 24 Institut für Programmierung und Reaktive Systeme
25 Was Passiert? 1 public class Overload { 2 3 public void foo ( Object a) { 4 System. out. println (" Das war ein Object "); 5 } 6 7 public void foo ( String a) { 8 System. out. println (" Das war ein String "); 9 } public static void main ( String [] args ) { 12 Overload o = new Overload (); 13 Object obj = new String (" Foobar "); 14 o. foo ( obj ); 15 String str = new String (" Foobar "); 16 o. foo ( str ); 17 } }
26 final final vor Attributen und lokalen Variablen verhindert das Ändern derer Werte Für Referenttypen heißt dies: Es kann nicht geändert werden, worauf die Referenz zeigt. Das referenzierte Objekt ansich ist jedoch noch veränderbar. final vor Klassen: Von der Klasse kann nicht geerbt werden final vor Methoden: Kein Überschreiben möglich 1 import java. util.*; 2 public class Fin { 3 public static final List < String > l = new ArrayList < String >() ; 4 public static final int ANSWER = 42; 5 6 public static void main ( String [] args ) { 7 System. out. println (l); 8 // Geht nicht, da l final ist 9 // l = new ArrayList < String >() ; 10 // Das referenzierte Objekt selbst kann geaendert werden 11 l. add (" Test "); 12 System. out. println (l); 13 } 14 }
27 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält alle Attribute und Methoden der Elternklasse Syntax: class Kindsklasse extends Elternklasse... Objekte der Kindsklasse sind auch Objekte der Elternklasse Kindsklasse kann Methoden ändern (überschreiben), Zugriff auf Version der Elternklasse mit super Jede Klasse hat genau eine direkte Elternklasse, ohne Angabe Object
28 Ein schneller Counter 1 public class Counter { 2 private int count ; 3 4 public Counter ( int start ) { 5 this. count = start ; 6 } 7 8 protected setcount ( int count ) { 9 this. count = count ; 10 } public void increase () { 13 count ++; 14 } public int getcount () { 17 return count ; 18 } public void reset () { 21 count = 0; 22 } 23 }
29 Ein schneller Counter Wichtig: Kindsklasse darf nicht auf private Elemente der Elternklasse zugreifen! Wichtig: Konstruktoren werden nicht vererbt! setcount ist protected, damit die Unterklasse, den Counter freier setzen kann Alternativ: Mehrfache Benutzung von increase der Elternklasse 1 public class FastCounter extends Counter { 2 3 public FastCounter ( int start ) { 4 super ( start ); 5 } 6 7 public void increase () { 8 setcount ( getcount () + 2); 9 } 10 } 1 public void increase () { 2 super. increase (); 3 super. increase (); 4 }
30 Polymorphie Jedes Objekt einer Kindsklasse ist auch ein Objekt seiner Elternklassen. 1 Counter c = new FastCounter (0) ; Java löst Methodenaufrufe auf Objekte zur Laufzeit auf 1 c. increase (); // Ruft increase von FastCounter auf, obwohl c eine Counter - Referenz ist 2 System. out. println (c. getcount ()); // <- 2 Es wird die Methode des Typs des referenzierten Objektes aufgerufen, nicht die vom Typ der Referenz! Das Objekt selbst weiß, wie es was tun muss
31 Was passiert? 1 public class A { 2 public void say () { 3 System. out. println (" Klasse A"); 4 } 5 } 6 7 public class B extends A { 8 public void say () { 9 System. out. println (" Klasse B"); 10 } 11 } A a = new A(); 14 a. say (); 15 B b = new B(); 16 b. say (); 17 A b2 = new B(); 18 b2.say ();
32 == und Referenzen == vergleicht für Referenzdatentypen nur, ob beide Referenzen auf das selbe Objekt zeigen. 1 Counter a = new Counter (0) ; 2 Counter b = new Counter (0) ; 3 System. out. println (a == b); 4 Counter c = a; 5 System. out. println (a == c);
33 equals Alle Klassen erben von Object Object hat Methode public boolean equals(object o) Ohne Überschreiben wie == Kann in Unterklasse überschrieben werden, um wertemäßig zu vergleichen Da eine Referenz auf ein Object übergeben wird, muss man beim überschreiben auf zwei Sachen achten: null und den richtigen Typ o intanceof Klasse gibt true zurück, wenn o nicht null ist und ein Objekt vom Typ der angegebenen Klasse ist
34 Counter equals() 1 public class Counter { 2 public boolean equals ( Object o) { 3 if (!( o instanceof Counter )) { 4 return false ; // o null oder falscher Typ 5 } 6 Counter c = ( Counter ) o; 7 return o. getcount () == getcount (); 8 } 9 } Counter a = new Counter (0) ; 12 Counter b = new Counter (0) ; 13 System. out. println (a. equals (b)); 14 Counter c = a; 15 System. out. println (a. equals (c));
35 Abstrakte Klassen Klassen, von denen keine Objektinstanzen erzeugt werden können Baupläne für andere Klassen Sind mit abstract markiert. Können Methoden ohne Implementierung enthalten Diese Methoden müssen auch mit abstract markiert werden. Markus Reschke Java Grundlagen 2 - OOP 35 Institut für Programmierung und Reaktive Systeme
36 Ein abstrakter Counter 1 public abstract class IntCounter { 2 private int count ; 3 4 public IntCounter ( int start ) { 5 this. count = start ; 6 } 7 8 protected setcount ( int count ) { 9 this. count = count ; 10 } public abstract void increase (); public int getcount () { 15 return count ; 16 } public void reset () { 19 count = 0; 20 } 21 }
37 Interfaces Interfaces geben an, über welche Methoden eine Klasse verfügt Es wird jedoch keine Implementierung mitgegeben. Eine Klasse kann beliebig viele Interfaces implementieren (im Vergeich zum Erben) Die Definition eines Interfaces wird mit interface eingeleitet. Klassen implementieren Interfaces mit implements. Interfaces sind Typen Gegen Interfacetyp programmieren Implementierungen einfach austauchbar 1 ZugriffsBeschraenker interface KlassenName { 2 // Statische Konstanten ( public, static, final sind implizit ) 3 int ANSWER = 42; 4 // Abstrakte Methoden ( abstract, public sind implizit ) 5 void foo (); 6 }
38 Demo Demo: UnaryCounter.java ICounter.java IntCounter.java Main.java Markus Reschke Java Grundlagen 2 - OOP 38 Institut für Programmierung und Reaktive Systeme
39 Überblick und Ausblick Warum OOP? Klassen Attribute Methoden static Vererbung Abstrakte Klassen und Interfaces Morgen: Weitere Sprachfeatures von Java Markus Reschke Java Grundlagen 2 - OOP 39 Institut für Programmierung und Reaktive Systeme
Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Vorkurs Informatik WiSe 16/17
Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12 bis 14.10.2016 Technische Universität Braunschweig, IPS Überblick Warum OOP? OOP
Vorkurs Informatik WiSe 17/18
Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 11. bis 13.10.2017 Technische Universität Braunschweig, IPS Warum OOP? OOP mit Java
Institut 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
Vorkurs Informatik WiSe 15/16
Institut für Programmierung und Reaktive Systeme Vorkurs Informatik WiSe 15/16 Java 5 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Überblick
Vorkurs 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
Vorkurs Informatik SoSe18
Vorkurs Informatik SoSe18 Java Methoden Dr. Werner Struckmann / Maximilian von Unwerth, 27.03.2018 Einleitung Rekursion Übung Objektorientierung OOP mit Java Vererbung Weitere Beispiele 27.03.2018 Dr.
Programmierung 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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Einstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
Vererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
Algorithmen 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
Fragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
Objektorientierte 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
Programmieren 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
IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
Tafelü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
6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Neben 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
Programmieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
4. 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
Klassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
Javakurs 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
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Objektorientierte 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
II.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Vererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden
Tag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
Das Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Informatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
Grundzü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
Einführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
Kapitel 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
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
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:
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,
Programmieren 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
Objektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
Die 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
Programmieren 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
Informatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
Objektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
JAVA 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
Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.
Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe
Einführung in das Programmieren Probeklausur Lösungen
Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht
II.4.1 Unterklassen und Vererbung - 1 -
n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und
Programmiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
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
Methoden 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
Silke 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
II.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
Universität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
Java 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
Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string
Objektorientierte 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
Silke 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
Einführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen
Arten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
14 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
Wiederholung. Klassenhierarchie:
Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse
Objektorientierte Programmierung
Objektorientierte Programmierung WS 2006/2007 Klassen und Vererbung in Java Walter Binder Universität Lugano 2006-11-23 Objektorientierte Programmierung 1 Überblick Konstruktoren Verdecken versus Überschreiben
AuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
Vorlesung 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:
14 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.
Interfaces und Vererbung
Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren
II.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
II.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
14 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
Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
Polymorphie. 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
Einstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
Abstrakte Basisklassen
Abstrakte Basisklassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 24.06.2018 15:20 Abstrakte Basisklassen 1/18 Idee (1/2) Gegensätze: Interfaces ausschließlich Methodenköpfe, keine
EINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
II.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
Polymorphie. 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
Propädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen
Ü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