Programmieren. Warum Objektorientierung? Objektorientierung. Beispiele für Busobjekte der realen Welt
|
|
- Frank Brodbeck
- vor 6 Jahren
- Abrufe
Transkript
1 Institut für Telematik Universität zu Lübeck 2-2 Warum Objektorientierung? Kapitel 5: Java (5.7 und 5.8) Wintersemester 2008/2009 Prof. Dr. Christian Werner Problem: Wie stelle ich eine Beziehung zwischen meinem Code (Variablen, Schleifen, If-Anweisungen,...) und der realen Welt her? Früher (Basic, C, Pascal usw.): Aufteilung des Codes in Blöcke (Module), welche jeweils bestimmte Aufgaben erledigen. Beispiel Busfahrplan : Hauptmodul (Programmlogik) Dateioperationsmodul Bildschirm-Ein-/Ausgabe-Modul Druckeransteuerungsmodul Usw. Nachteile: Beziehungen zwischen den Modulen schwer durchschaubar! Lokale Änderungen können sich global auswirken! 2-3 Objektorientierung 2-4 Beispiele für Busobjekte der realen Welt Objekte der realen Welt werden eins zu eins im Code modelliert! Beispiel elektronischer Busfahrplan : Fahrgäste Tarifzonen Busse Fahrer Haltestellen Usw.
2 2-5 Objekte im Computermodell 2-6 Grundlagen der Objektorientierung Definition Objekt: Ein Objekt ist die Repräsentation eines Gegenstandes oder Sachverhalts der realen Welt oder eines rein gedanklichen Konzepts. Es ist gekennzeichnet durch: 1. eine eindeutige Identität, durch die es sich von anderen Objekten unterscheidet 2. statische Eigenschaften zur Darstellung des Zustandes des Objekts in Form von Attributen 3. dynamische Eigenschaften in Form von Methoden, die das Verhalten des Objekts beschreiben. Aber: Es ist nicht zweckmäßig sämtliche Zustands- und Verhalteneigenschaften der realen Objekte im Computer zu modellieren! Zustand und Verhalten müssen so umfangreich modelliert werden, wie es für das Computerprogramm erforderlich ist. Beispiel Bus für Reparaturwerkstatt : Zustand (Attribute): - Hersteller - Ölwechselintervall - Km seit letztem Ölwechsel - Sitzplatzanzahl - Anzahl Fahrgäste - Tankfüllstand - Baujahr - Linie Verhalten (Methoden) - Ölwechsel machen - Fahrgäste einsteigen lassen 2-7 Klassen und Objekte (1/3) 2-8 Exkurs: UML Objekte verfügen über Attribute, Methoden und eine Identität. Beobachtung: Es gibt sehr viele Objekte, die bzgl. Attributen, Verhalten und Beziehungen sehr ähnlich sind (z.b. Schulbus aus Groß Grönau, Reisebus von Nr. 47 von Rainbow Tours, Linienbus 19 aus Lübeck usw.) Frage: Sollen für jedes dieser Objekte diese immer gleichen Strukturen immer wieder neu angegeben/implementiert werden? Antwort: NEIN! Man fasst ähnliche Objekte zu einer Klasse zusammen, die Aussagen über die Struktur (Attribute) und das Verhalten der zugehörigen Objekte (Methoden) zusammenfasst und als Ansprechpartner bzgl. Objekterzeugung etc. dient. Grafische Notation: Im Folgenden wird zur grafischen Notation von Klassen und Objekten die Unified Modeling Language (UML) verwendet (allerdings vereinfacht)! UML ist der De Facto -Standard zur Modellierung von Objektsystemen bei Analyse und Entwurf von (objektorientierten) Softwaresystemen. Notation eines Objekts: Beispiel: objekt : Klasse attributname = wert p : Person name = "Walter" geburtsdatum =
3 2-9 Klassen und Objekte (2/3) 2-10 Klassen und Objekte (3/3) Klassenbildung: ähnliche Objekte werden zu einer Klasse zusammengefasst! Beispiel: Bus b1: Bus hersteller="ford" wechselintervall=10000 km_gefahren=3722 baujahr=1920 b3: Bus hersteller="man" wechselintervall=30000 km_gefahren=10432 baujahr=2005 Bus : boolean b2: Bus hersteller="mercedes-benz" wechselintervall=20000 km_gefahren=5647 baujahr=1999 b4: Bus hersteller="scania" wechselintervall=35000 km_gefahren=54432 baujahr=2003 Definition Klasse: Anschaulich: Eine Klasse ist eine Menge von Objekten mit gleichen Eigenschaften und gleichem Verhalten. Genauer: Eine Klasse ist eine Beschreibung von Objekten (ggf. nur einem), die über eine gleichartige Menge von Attributen und Methoden verfügen und beinhaltet eine Beschreibung, wie neue Objekte dieser Klasse erzeugt werden können. Anmerkung: Objekte einer Klasse nennt man auch Instanzen dieser Klasse Redeweise: b1 ist Instanz der Klasse Bus 2-11 Umsetzung in Java (1/5) 2-12 Umsetzung in Java (2/5) Attribute: Syntax: Typ Name; Können selbst Objekte sein oder aber primitive Datentypen. Methoden: Syntax: Rückgabetyp Methodenname (Typ1 Name1, Typ2 Name2, ) { können einen Wert zurückliefern (Objekt oder primitiver Datentyp) Andernfalls: Rückgabetyp void Konstruktoren: Syntax: Klassenname (Typ1 Name1, Typ2 Name2, ) { Liefern neue Objektinstanzen zurück der Klasse. Daher ist hier die Angabe eines Rückgabetyps nicht erforderlich! Eine Klasse kann durchaus mehrere Konstruktoren haben. Ein Konstruktor sollte sämtliche Attribute initialisieren (guter Programmierstil). Jede Klasse wird in einer separaten Datei abgelegt. Der Dateiname entspricht dem Klassennamen. Jede Klasse, die eine Main-Methode enthält, kann von der Virtual Machine ausgeführt werden: public static void main(string[] args) args ist dabei ein Array der Kommandozeilen-Parameter! Konvention: Großschreibung: Klassennamen (Beispiele: Bus, String) Konvention Kleinschreibung: primitive Datentypen (Beispiele: byte, short, boolean) Variablen (Beispiel: myint, meinprivatbus) Methodennamen (Beispiel:, main(string[] args))
4 2-13 Umsetzung in Java (3/5) 2-14 Umsetzung in Java (4/5) class Bus { String hersteller; int wechselintervall; int km_gefahren; //seit letztem Ölwechsel int baujahr; Bus (String s1, int i1, int i2, int i3) { hersteller=s1; wechselintervall=i1; km_gefahren=i2; baujahr=i3; Attribute (Man nennt diese auch Klassenvariablen.) Konstruktor (Er dient zur Erzeugung einer Instanz dieser Klasse.) void { if (km_gefahren>=wechselintervall) { Methode System.out.println("Ölwechsel durchgeführt"); km_gefahren = 0; else { System.out.println("Ölwechsel nicht erforderlich"); Klasse Bus ist fertig, doch wie kann man nun damit arbeiten? Antwort: 1. Neue Klasse mit Main-Methode schreiben: BusTest 2. Hier Konstruktor benutzen und Instanz erzeugen: Bus meinprivatbus = new Bus("VW",20000,0,1983); 3. Objekt verwenden: - Zugriff auf Attribute: meinprivatbus.wechselintervall=15000; - Methoden rufen: meinprivatbus.; 2-15 Umsetzung in Java (5/5) 2-16 Demo: Erweiterung der Klasse Bus class BusTest { public static void main(string[] args) { // Parameter: Hersteller, Ölwechselintervall, // km seit letztem Ölwechsel, Baujahr Bus meinprivatbus = new Bus("VW",20000,0,1983); Bus linie4 = new Bus("MAN",30000,45000,1989); meinprivatbus.; linie4.; Neue Methode, welche Informationen über ein Busobjekt ausgibt. info() Neuer Konstruktor mit folgenden Parametern: Bus (String hersteller, int km_gefahren, int baujahr) Neue Methode, welche km_gefahren hochsetzt und true zurückgibt, falls Ölwechselintervall dabei nicht überschritten wird. Ansonsten gibt sie false zurück: boolean fahre(int km);
5 2-17 Vererbung (1/6) 2-18 Vererbung (2/6) Es gibt in der Praxis häufig das Problem, dass mehrere Klassen gebraucht werden, die in weiten Teilen gleiche Funktionalitäten bereitstellen. Beispiel: Bus LKW PKW Es ist ungeschickt, alle Klassen separat zu implementieren: Viel Schreibarbeit Wird das Programm korrigiert oder verändert, müssen unter Umständen alle Klassen angepasst werden! Lösung: Man versucht, zu ähnlichen Klassen eine gemeinsame Oberklasse zu finden, die die Ähnlichkeiten subsumiert (Attribute, Verhalten, Beziehungen), und ergänzt in den Unterklassen lediglich die Unterschiede Vererbung (3/6) 2-20 Vererbung (4/6) Klassenbildung: ähnliche Klassen werden zu einer Oberklasse zusammengefasst! Bus toilette: boolean toiletteleeren() Fahrzeug Gemeinsame Oberklasse Gemeinsamkeiten PKW Bauart: String cabriodach(boolean) Bus toilette: boolean toiletteleeren() Notation (UML) Fahrzeug Redeweise: Bus und PKW sind Unterklassen (Subclasses) bzw. Spezialisierungen von Fahrzeug Fahrzeug ist Oberklasse (Superclass) bzw. Generalisierung von Bus und PKW PKW bauart: String cabriodach(): boolean
6 2-21 Vererbung (5/6) 2-22 Vererbung (6/6) Eine Unterklasse erbt von ihrer Oberklasse (rekursiv) alle Attribute und Methoden und kann diese um weitere Attribute und Methoden ergänzen. Erben bedeutet: Die Attribute und Methoden der Oberklasse können in der Unterklasse verwendet werden, als wären sie in der Klasse selbst definiert. Beispiel: Zur gezeigten Vererbungshierarchie sind folgende Objekte möglich: f: Fahrzeug Bus toilette: boolean Fahrzeug PKW bauart: String Instanziierung hersteller = "Honda" wechselintervall = 5000 Km_gefahren = 542 baujahr = 2003 b: Bus hersteller = "MAN" wechselintervall = Km_gefahren = 4243 baujahr = 1999 toilette = true p: PKW toiletteleeren() cabriodach(): boolean hersteller = "VW" wechselintervall = Km_gefahren = 433 baujahr = 2005 bauart = "Cabrio" 2-23 Vererbung in Java 2-24 Polymorphie In Java wird Vererbung durch die folgende Notation ausgedrückt: class Unterklasse extends Oberklasse {... Vollständiges Beispiel folgt als Demo Hinweis: Wird keine Oberklasse angegeben, so ist automatisch die Klasse Object Oberklasse. D.h. Object ist Oberklasse jeder Klasse. Methoden von Oberklassen können in Unterklassen redefiniert werden. Hierbei gibt es zwei Varianten: 1. Überladen (Overloading) Hierbei wird ein alternativer Programmblock unter dem gleichen Methodennamen, aber mit unterschiedlicher Anzahl und/oder unterschiedlichem Typ der Parameter angegeben. Allerdings bleibt der Ergebnistyp bei Funktionen gleich. Überladen ist auch innerhalb einer Klassendefinition möglich (s. z.b. Konstruktoren). 2. Überschreiben (Overriding) Hierbei wird unter dem gleichen Methodennamen ein alternativer Programmblock mit gleichem Parameterblock angegeben. Auch in bzgl. Vererbung unabhängigen Klassenbäumen sinnvoll!
7 2-25 Schlüsselwort super 2-26 Abstrakte Klassen und Methoden (1/2) Soll in einer Unterklasse auf den Konstruktor oder eine Methode der Oberklasse zugegriffen werden, verwendet man das Schlüsselwort super: super( ) // Kontruktor super.methodenname( ) // Methode Dies ist vor allem beim Überschreiben von Methoden sinnvoll, um zwischen dem Code der Ober- und der Unterklasse zu unterscheiden! Problem: Es soll eine Klasse definiert werden, deren Instanzen und Methoden in einem bestimmten Kontext verwendet werden sollen, deren Implementierung man aber nicht vorgeben bzw. bewusst offen halten möchte. Beispiel: Geometrische Objekte: Umfangberechung Oberklasse: GeometrischeForm Unterklassen: Kreis, Quadrat Oberklasse enthält eine abstrakte Methode: abstract double berechneumfang(); Bedeutung: Jede GeometrischeForm unterstützt die Berechnung des Umfangs, aber die Implementierung erfolgt in einer Unterklasse Abstrakte Klassen und Methoden (2/2) 2-28 Interfaces (1/2) Jede Klasse, die mindestens eine abstrakte Methode enthält, wird selbst abstrakt: abstract class GeometrischeForm { Eine abstrakte Klasse kann nicht instanziiert werden! Unterklassen einer abstrakten Klasse müssen alle abstrakten Methoden konkretisieren (oder müssen selbst als abstract gekennzeichnet werden): class Kreis { double berechneumfang() { //hier kommt der Code rein Kann eine Klasse auch von mehreren Oberklassen erben (sog. Mehrfachvererbung)? Prinzipiell ja z.b. in C++. In Java jedoch nicht. Bei Mehrfachvererbung können nämlich Konflikte entstehen, deren Auflösung kompliziert sein kann. Um dennoch ähnliche Funktionalitäten zu realisieren, gibt es in Java neben echten Oberklassen sog. Interfaces. Im Gegensatz zu einer Klasse enthält ein Interface lediglich Methodenköpfe, jedoch keinen Code (vergleichbar mit einer Klasse, die ausschließlich abstrakte Methoden enthält).
8 2-29 Interfaces (1/2) 2-30 Interfaces (2/2) Beispiele: interface Gebrauchsgegenstand { int wertverlustprojahr(); interface Prestigeobjekt { //Für Erläuterungen siehe: // int womanacceptancefactor(); Von einem Interface wird nicht geerbt, sondern es wird implementiert. Schlüsselwort: implements Eine Klasse kann von max. einer Klasse erben, aber sie kann beliebig viele Interfaces implementieren: class PKW extends Fahrzeug implements Gebrauchsgegenstand, Prestigeobjekt { //muss alle Methoden der Interfaces implementieren! int wertverlustprojahr(){ int womanacceptancefactor(){ 2-31 Demo 2-32 Fahrzeug.java Schreibe zunächst Oberklasse Fahrzeug. Erweitere Fahrzeug um die Methode void drucke(). Schreibe die Interfaces Gebrauchsgegenstand und Prestigeobjekt. Implementiere Unterklasse PKW, welche von Fahrzeug erbt, die beiden Interfaces implementiert und die Methode drucke() überschreibt. Beim Überschreiben soll die Methode drucke() der Oberklasse gerufen werden. class Fahrzeug { String hersteller; int wechselintervall; int km_gefahren; int baujahr; Fahrzeug (String s1, int i1, int i2, int i3) { hersteller=s1; wechselintervall=i1; km_gefahren=i2; baujahr=i3; void { if (km_gefahren>=wechselintervall) { System.out.println("Ölwechsel durchgeführt"); km_gefahren = 0; else { System.out.println("Ölwechsel nicht erforderlich"); void drucke() { System.out.println("Hersteller: " + hersteller); System.out.println("Wechselintervall: " + wechselintervall); System.out.println("km seit letztem Ölwechsel: " + km_gefahren); System.out.println("Baujahr: " + baujahr);
9 2-33 Gebrauchsgegenstand.java und Prestigeobjekt.java 2-34 PKW.java class PKW extends Fahrzeug implements Gebrauchsgegenstand, Prestigeobjekt { String bauart; interface Gebrauchsgegenstand { int wertverlustprojahr(); interface Prestigeobjekt { //Für Erläuterungen siehe: // int womanacceptancefactor(); PKW (String herst, int wechselint, int km, int bauj, String baua) { // Konstruktor der Oberklasse rufen: super(herst,wechselint, km, bauj); bauart=baua; void drucke() { super.drucke(); System.out.println("Bauart: "+bauart); public int womanacceptancefactor() { // Die Methode equals aus der Klasse String // testet zwei Strings auf Gleichheit. if (bauart.equals("cabrio")) { return 7; else { return 3; public int wertverlustprojahr() { if (baujahr>2004) { return 2000; else { return 500; boolean cabriodach() { if (bauart.equals("cabrio")) { return true; else { return false;
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:
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
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
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
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)
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
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
MehrKapitel 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
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
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung
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
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
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
MehrRepetitorium 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
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
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
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
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
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,
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
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 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,
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
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
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
MehrAnwendungsentwicklung 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,
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
MehrInformatik 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.
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
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
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
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
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
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
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.
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
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:
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
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
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
Mehr7. 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
MehrVererbung 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
MehrObjektorientierung. Objekte
Eine Einführung G. Futschek Objekte Objekte Fragen: Wie unterscheiden sich Objekte? Wie sind Objekte einander ähnlich? Was können Objekte? Wie stehen Objekte zueinander in Beziehung? Objekte Im täglichen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
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
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
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrProbeklausur: 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,
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
MehrProgrammieren 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
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
MehrPolymorphie/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
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 Grundidee abstrakter Klassen:
MehrInstitut 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
Mehr3 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
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
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
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
Mehr! 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;
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
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrSortieren von Objekten
Algorithmen und Datenstrukturen Wintersemester 2013/14 18. Vorlesung Sortieren von Objekten Krzysztof Fleszar Lehrstuhl für Informatik I 1 Die Welt in unseren Programmen 1.357374356-4.526426 25236748458
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrMusterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrSchlussendlich 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 -
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
MehrArten 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
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
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]
MehrVerhindert, 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:
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
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
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
MehrJava 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
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrEinstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
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
MehrVererbung. 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
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
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrAlgorithmen 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
MehrJava 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
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrEinstieg 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:
MehrEinstieg 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
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
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
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Mehr2.4 Datenabstraktion und Objektorientierung Datenabstraktion in Programmiersprachen
2.4 Datenabstraktion und Objektorientierung 2.4.1 Datenabstraktion in Programmiersprachen Datenabstraktion: zur Beherrschung von Komplexität unerlässlich. In jeder Programmiersprache kann man gemäß den
MehrEinfü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
MehrObjektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
MehrWiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
Mehr