EPROG Tutorium #5 Philipp Effenberger

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
Einführung in die Programmierung Zusammenfassung
Kritische Betrachtung
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Erweiterte Zuweisungskompatibilität
Konstruktoren.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Einführung in die OOP in Java
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
Klassen 02 - Klassen.
Einführung in die Programmierung Vererbung
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Template Pattern Richard Göbel.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
René Castillo Björn Bollensdorff Analysetechniken in der Softwaretechnik SS 2007 Featherweight Java Inside every large language is a small language struggling.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Objektorientiertes Programmieren
Grundlagen der Programmierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
ObjektOrientiertes Programmieren
Equals, Hashcode und CompareTo Micha Kessler
Klassenhierarchien, Vererbung
Objektorientierte Programmierung
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #6 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
Mittwoch Informatik II, 1. Teil
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vererbung Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Vererbungskonzepte in Java
Abstrakte Klassen und das Interface-Konzept
Dr. Wolfram Amme, Generisches Programmieren, Informatik II, FSU Jena, SS Generisches Programmieren.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
1 Eine Einführung in die objektorientierte Programmierung.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
OOP II.
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Programmierung und Vererbung in Java
1. Die rekursive Datenstruktur Liste 1
Vererbung in Java Von Jan und Eddi.
Polymorphie Überschreiben
 Präsentation transkript:

EPROG Tutorium #5 Philipp Effenberger Verschiedene Collections List Set Stack Vererbung Casten Abstract Class Interface 03. Mai 2005 philipp_effenberger@web.de

Collections Nur Objekte koennen an Collection angefügt werden int, char, double, boolean etc... sind keine Objekte Wrapperobjekte: Integer, Character, Double etc... ArrayList<Integer> tmp = new ArrayList<Integer>(); tmp.add( new Integer(4) ); tmp.add( 4 ); // Funktioniert auch implizit int i = tmp.get( 0 ); // und genauso retour int j = tmp.get( 1 ).intValue(); 03. Mai 2005 philipp_effenberger@web.de

Collections – List Wie flexible Arrays Auch Interface; Implementierungen sind ArrayLists: benutzt Arrays LinkedList: Verkettete Listen (siehe AlgoDat) Vector: eher veraltet. Methoden: add, remove, contains, ... contains funktioniert nur dann, wenn Methode equals richtig implementiert //class Matrix public boolean equals(Object o) { Matrix t = (Matrix) o; // casten // weitere Anweisungen... } 03. Mai 2005 philipp_effenberger@web.de

Collections – Set Menge: Unterschied zu Liste: Jedes Element unique Beste Implementierung : HashSet Methode int hashCode() und equals muss implementiert sein idR reicht int hashCode() { return 0; } Beispiel: Programm zum Zaehlen aller unterschiedlicher Woerter in einem Text 03. Mai 2005 philipp_effenberger@web.de

Collections – Stack In Java eigentlich eine Liste (implementiert List-Interface) Stapel: 2 Operationen push = oben etwas ablegen pop = oben etwas wegnehmen Beliebte Datenstruktur bei Rechnern keine Klammern nötig 3 1 2 + - 4 * entspricht 4 * ((2 + 1) - 3) Einfach am Computer zu realisieren 03. Mai 2005 philipp_effenberger@web.de

Vererbung legt Beziehungen zwischen Klassen fest Subklasse extends Superklasse Subklasse “erbt” alle Methoden und Eigenschaften Subklasse kann Methoden der Superklasse Überschreiben mit final kann man Ableitung verhindert werden public final class XYZ {…} keine Mehrfachvererbung in Java Vererbung sollte eine logische Erweiterung der Superklasse darstellen Rectangle extens Figure // Rechteck is_a Figur Square extends Rectangle // Quadrat is_a Rechteck Neue Schlüsselworte: super (=this nur auf Oberklasse bezogen), protected (wie private aber auch in Unterklassen sichtbar) 03. Mai 2005 philipp_effenberger@web.de

Vererbung – Polymorphie (Auszug) Überschreiben (Spezialisierung) Methode aus Superklasse geerbt In Subklasse selbe Methode implementiert super.Methode(…)//Methodenaufruf Superclass,statt eigener Überladen (Variation) In gleicher Klasse Methode mehrfach implementiert: private int wahrFalsch() {}; private boolean wahrFalsch( int a ) {}; Unterscheiden sich durch Rückgabewert, Parameterwert(e). Wird vom Compiler erkannt, welche Methode gerade nötig ist. 03. Mai 2005 philipp_effenberger@web.de

Casten Untertyp ist auch vollwertiger Obertyp Relation in Vererbungshierachie einsehbar Bsp. vom letzten Mal: Fahrrad is_a Transportmittel Fahrrad x = new Fahrrad(); Nicht umgekehrt // ClassCastException Transportmittel x = new Fahrrad(); Nicht anders // Exception, spätestens im Prog Fahrrad x = new Dreieck(); Transportmittel y = (Transportmittel) x; 03. Mai 2005 philipp_effenberger@web.de

Abstrakte Klassen nur teilweise Implementation der Klasse abstract class XYZ {…} Methoden ohne Körper! // ==nur Schnittstellendeklaration Konstruktor nicht aufrufbar 03. Mai 2005 philipp_effenberger@web.de

Interfaces Interface = Spezifikation einer Klasse = Schnittstellen der Klasse = öffentliche Methoden eines Objekts Implementierung unbekannt, weil unwichtig (für Objekt) Ähnlich wie vollkommen abstrakte Klassen interface statt class Eine Klassen kann auch mehrere Interfaces implementieren (→pseudo Mehrfachvererbung möglich) Ermöglichen es, Schnittstelle und Implementation sauber zu trennen Beispiel: class Foo implements Bar, GoGo 03. Mai 2005 philipp_effenberger@web.de