Webtechnologien. Teil 7: PHP Klassen und Objekte

Größe: px
Ab Seite anzeigen:

Download "Webtechnologien. Teil 7: PHP Klassen und Objekte"

Transkript

1 Webtechnologien Teil 7: PHP Klassen und Objekte

2 Literatur [7-1] Trachtenberg, Adam: Umsteigen auf PHP 5. O'Reilly, 2005 [7-2] Theis, Thomas: PHP 5.6 und MySQL Auflage, Gallileo Computing, 2014 [7-3] Lerdorf, Rasmus; Bergmann, Sebastian; Hicking, Garvin: PHP kurz&gut. O'Reilly, 3. Auflage, 2006 [7-4] Schmidt, Stefan: PHP Design Patterns. O'Reilly, 2006 [7-5] Sklar, David; Trachtenberg, Adam: PHP5 Kochbuch. O'Reilly, 2. Auflage,

3 Übersicht Objekte und Klassen Magische Methoden Magische Konstanten Schnittstellenabstraktion Wrapper-Klassen Factory-Klassen 3

4 Klassen I [abstract] class Name [Inheritance] { [Variablen-Deklarationen] [Funktion-Deklarationen] Die Variablen realisieren die Attribute der Klasse. Auf diese wird innerhalb der Klasse mit "$this->attribute" zugegriffen, von außerhalb normalerweise mit "$Object->Attribute". Die Funktionen bilden die Methoden. Auf sie wird analog zu den Attributen zugegriffen: "$Object->Methode()" bzw. mit "$this->methode()". Ohne den Vorspann mit $this ist in PHP kein Zugriff auf Attribute und Methoden möglich. Als Modifier ist möglich: abstract Deren Bedeutung ist dieselbe wie in Java. Als Inheritance sind möglich: extends und implements Deren Bedeutung ist dieselbe wie in Java. 4

5 Klassen II - Variablendeklarationen [Modifier] [static] Name[= Wert]; Als Modifier sind möglich: private, protected und public Deren Bedeutung ist dieselbe wie in Java. Die Benutzung des Schlüsselwortes var als Modifier ist veraltet und entspricht public. Wenn Sie also ein Attribut explizit deklarieren wollen was zu empfehlen ist -, dann benutzen Sie eine der drei oben genannten Modifier. 5

6 Klassen III - Funktionsdeklarationen [Modifier] [static] function Name($arg1,$arg2,,$argN) {... [return Expr;] Als Modifier sind möglich: private, protected und public Deren Bedeutung ist dieselbe wie in Java. Für Name gibt es auch Namen mit festgelegter Bedeutung, die alle mit " " (Zwei Unterstrichen) beginnen, z.b.: construct() destruct() Ab PHP 7 sind auch hier Type Hints für die Parameter sowie für das Resultat möglich: nach einem declare am Anfang der Datei. 6

7 Modifier von Funktionen und Attributen Modifier public Erläuterung Darf von überall her zugegriffen werden protected Darf nur aus einer Methode innerhalb der Vererbungshierarchie her zugegriffen werden private Darf nur innerhalb derselben Klasse zugegriffen werden Default ist public. 7

8 Beispiel class Auto { public $Hersteller; public $Typ; public $Farbe; Dieses Deklarieren ist scheinbar unnötig machen Sie es trotzdem. function Ausgabe() { echo "$this->hersteller $this->typ $this->farbe"; function NeueFarbe($FarbeNeu) { $this->farbe= $FarbeNeu; Es muss "$this->" beim Zugriff von Innen benutzt werden, da ansonsten eine lokale Variable in der Funktion eingerichtet wird. 8

9 Erzeugen von Instanzen/Objekten I $Objektname= new Klassenname(); $a= new Auto(); $a->hersteller= "VW"; $a->typ= "Käfer"; $a->farbe= "rosa"; $a->ausgabe(); $a->neuefarbe("schweinchenrosa"); Beim Zugriff auf Attribute wird kein "$" vor das Attribut, sondern vor die ganze Konstruktion geschrieben. Leider ist folgendes auch möglich: $Attribute= "Hersteller"; $a->$attribute= "VW"; 9

10 Erzeugen von Instanzen/Objekten II function autoload($klasse) { include("$klasse.php"); Diese Möglichkeit wird ab PHP 7.2 als veraltet gekennzeichnet. Die Routine autoload() wird außerhalb von Klassen definiert und realisiert einen Klassenlader. autoload() wird bei einer new()-operation einer nicht definierten Klasse, auch statische aufgerufen. Die zu ladenden Dateien müssen im Include-Pfad liegen (Parameter include_path in php.ini). Bitte beachten Sie, dass es keinen Linker/Binder gibt, d.h. alles, was zum Skript gehört, muss explizit geladen werden. Es gibt noch einen anderen, weit leistungsfähigeren Mechanismus, der hier nicht besprochen wird, siehe 10

11 Leider... Nach dem Erzeugen eines Objektes lassen sich auch dynamisch neue Attribute durch Zuweisung in das bestehende Objekt integrieren. Beispiel 1: $b= new Auto(); $b->hersteller= "Ford"; $b->ausgabe; Beispiel 2: $b= new Auto(); $b->hersteller= "Ford"; $b->ausgabe(); Im Beispiel 1 wird die neue Eigenschaft "Ausgabe" als public erzeugt. Im Beispiel 2 wird dagegen die Methode Ausgabe aufgerufen. Es wird im Beispiel 1 nicht unbedingt eine Fehlermeldung ausgegeben! 11

12 Klassen "außerhalb" definiert include_once("auto.class.php"); // Laden der Klasse $Kfz= new Auto(); $Kfz->Hersteller= "Mercedes"; $Kfz->Typ= "Elchklasse"; $Kfz->NeueFarbe("lila"); Datei auto.class.php class Auto { public $Hersteller; public $Typ; public $Farbe; function Ausgabe() { echo "$this->hersteller $this->typ $this->farbe"; function NeueFarbe($FarbeNeu) { $this->farbe= $FarbeNeu; 12

13 Konstruktor I class Auto { public $Hersteller; public $Typ; public $Farbe; function Ausgabe() { echo "$this->hersteller $this->typ $this->farbe"; function construct($hersteller, $Typ, $Farbe) { $this->hersteller= $Hersteller; $this->typ= $Typ; $this->farbe= $Farbe; Konstruktor = Funktion mit dem festgelegten Namen construct() Diese Funktion wird implizit beim new() aufgerufen. So wie in Java werden die Parameter von new() nach construct() weiter gereicht. 13

14 Konstruktor II $a= new Auto("VW","Käfer","rosa"); $a->ausgabe(); $a->neuefarbe("schweinchenrosa"); Es gibt in PHP kein Überladen von Funktionen/Methoden, d.h. es gibt immer nur einen Konstruktor, der mit beliebigen Parametern aufgerufen werden kann. Also: Den Mechanismus in Java, dass mehrere Konstruktoren/Methoden mit unterschiedlichen Parametern unterschieden werden, gibt es in PHP nicht. Es gibt aber die Möglichkeit dynamisch Methoden zu simulieren und damit auch das Überladen: Das ist aber kein Überladen. 14

15 Beseitigen von Instanzen/Objekten I unset(variable [, Variable...]); $Kfz= new Auto(); $Kfz->Hersteller= "Benz"; unset($kfz); Ein(e) Objekt(-Variable) enthält wie in Java eine Referenz auf das Objekt. Ein Objekt wird durch den Garbage-Collector gelöscht, wenn keine Referenzen darauf mehr vorhanden sind, also wie in Java. Mit unset() wird eine Referenz gelöscht, d.h. die Variable hat anschließend den Wert NULL. Eine Variable hat also den Typ NULL mit dem Wert null, wenn ihr die Konstante NULL zugewiesen wurde, sie noch nicht initialisiert wurde (vor der ersten Zuweisung) oder sie mit unset() bearbeitet wurde. Mit isset() wird geprüft, ob die Variable den Typ/Wert NULL hat. Aufruf: isset(variablenname) 15

16 Beseitigen von Instanzen/Objekten II class Auto {... function destruct() { echo "Jetzt bin ich auf dem Schrottplatz!"; destruct() wird direkt vor der Beseitigung aufgerufen, d.h. erst wenn der Referenzzähler auf 0 ist und der Garbage-Collector sich an die Arbeit macht, um das betreffende Objekt zu entfernen, also nicht (unbedingt) zum Zeitpunkt von unset(), aber spätestens zum Skriptende. Wir haben ähnliche Verhältnisse wie in Java. 16

17 Namensgebung und Deklarationen Groß/Kleinschreibung bei: Variablen, Konstanten und Attributen wird unterschieden. Konstruktoren, Funktionen und Klassen wird nicht unterschieden. Da sich dies nicht so leicht merken lässt: einfach immer alles so deklarieren, dass es nicht auf die Groß/Kleinschreibung ankommt. 17

18 Kopieren von Objekten bei PHP 5 I Variablen vom Typ object werden bei Zuweisungen Parameterübergaben nicht kopiert sondern nur deren Adresse, d.h. der Referenzzähler wird um 1 erhöht. Das Zuweisen besteht also im Kopieren seiner Adresse, nicht in einem Klonen; Objekte werden also nicht kopiert. Basisdatentypen, Strings und Arrays werden aber kopiert. Wenn geklont, also kopiert werden soll, muss dies per clone erfolgen: $meins= new Auto(); $unser= $meins; // $unser, $meins zeigen auf Dasselbe $deins= clone $meins;// jetzt gibt es zwei gleiche Autos 18

19 Kopieren von Objekten bei PHP 5 II Bei folgenden Datentypen werden die Werte durch Kopieren als Parameter übergeben bzw. zugewiesen: Integer (wie Java) Double/Float (wie Java) Boolean (wie Java) String (Nicht in Java!) Array bzw. Hash (Nicht in Java!) Es sei denn, bei der Deklaration der Funktion wurde ein Parameter als Call-by-Reference durch ein & angegeben; dann werden immer die Adressen übergeben. 19

20 Die magische Methode clone() I (1) class Person { (2) private $Vorname; private $Nachname; (3) private $Adresse; (4) function construct() { (5) $this->adresse= new Address(); (6) (7) (8) $heribert= new Person(); (9) $elvira= clone $heribert; PHP kopiert Klassen automatisch immer nur "flach". Flaches Klonen = Kopieren der Werte und Referenzen nur der Wurzel eines Objekt-Baumes Tiefes Klonen = Kopieren des gesamten Objekt-Baumes Existiert die Methode clone(), so wird diese zum Klonen aufgerufen. Damit lässt sich tiefes Klonens realisieren. 20

21 Die magische Methode clone() II Flaches Klonen Situation nach Zeile (8): heribert Person Adresse Situation nach Zeile (9): heribert Person Adresse Klonen elvira Person 21

22 Die magische Methode clone() III (1) class Person { (2) private $Vorname; private $Nachname; (3) private $Adresse; (4) function construct() { (5) $this->adresse= new Address(); (6) (7) function clone() { (8) $this->adresse= clone $this->adresse; (9) (10) (11) $heribert= new Person(); (12) $elvira= clone $heribert; In diesem Beispiel wird eine tiefe Kopie realisiert, da auch die Address-Objekte kopiert werden. 22

23 Die magische Methode clone() IV Tiefes Klonen Situation nach Zeile (11): heribert Person Adresse Situation nach Zeile (12): heribert Person Adresse Klonen Klonen elvira Person Adresse 23

24 Vererbung I class Person { public $Vorname; public $Nachname; function Output() { echo "$this->vorname $this->nachname"; 24

25 Vererbung II class Kunde extends Person { public $Strasse; public $Ort; public $Num; function construct($vn, $NN) { $this->vorname= $VN; $this->nachname= $NN; function Output() { echo "$this->num<br>"; parent::output(); echo "$this->strasse <br>$this->ort<br>\n"; Verweis auf obere Klasse (Elternklasse): "extends" Zugriff auf Attribute oberer Klassen über "parent::" 25

26 Bemerkungen zu :: Der ::-Operator muss auch auf Methoden von Klassen ohne Instanzen (static) angewendet werden. In diesem static-fall besteht folgende Bedingung: Die Methode muss ohne Konstruktor und ohne Initialisierung arbeiten können, also nur mit static-attributen bzw. nur mit Aufrufen von static-methoden. Dieser Operator wird auch Paamayim Nekudotayim genannt, siehe dazu 26

27 Konstanten in Klassen I class Math { const PI= ; const E= ; function umfang($radius) { return 2*self::PI*$radius; Konstanten innerhalb einer Klasse werden mit const deklariert und mit einfachen Werten, keinen Ausdrücken, definiert. Ab PHP 7.1 können Konstanten in Klassen auch die üblichen Modifier der Attribute und Methoden haben, public ist Default. Der Zugriff innerhalb der Klasse erfolgt mit self::name, von außen mit Klasse::Name, falls public. Konstanten haben kein einleitendes Dollarzeichen. 27

28 Konstanten in Klassen II define('pi',20);... class Math { const PI= ; const E= ; function umfang($radius) { return 2*PI*$radius; Jetzt wird die global deklarierte Konstante PI mit dem Wert 20 benutzt - dies liegt am fehlenden "self::". 28

29 static class Math { private static $myvar; public static function Sinus($value) { self::$myvar=...; return...; $var= Math::Sinus(0); Analog zum Zugriff auf Konstanten wird mit self:: auf statische Attribute bzw. Methoden der eigenen Klasse zugegriffen. Alle static-attribute werden ein einziges Mal angelegt und gemeinsam von allen Objekten der betreffenden Klasse benutzt. Der Zugriff von Außen erfolgt durch den Klassenname::Methode() bzw. Klassenname::Attribut. 29

30 final Durch das Schlüsselwort final vor einer Klasse, Methode oder einem Attribut lässt sich ein Überschreiben bzw. Überdecken durch Vererbung verhindern. final angewendet auf Attribute führt zu Konstanten innerhalb von Klassen und sollte auch so angewendet werden. 30

31 Merkregel für :: und -> Wann muss mit :: und wann mit -> zugegriffen werden? Wenn der Compiler, also vor der Laufzeit, die Zuordnung bestimmen kann, dann mit :: Wenn erst zur Laufzeit die Adresse der referenzierten Sache bekannt ist, dann mit -> Oder anders: Alles, was mit new() erzeugt wurde: -> Alles, was static oder eine Konstante ist: :: Das gilt auch im Inneren der Methoden. 31

32 Type Hints class PersonGroup { public function add(person $person) {... Es kann der Objekttyp bei der Parameterübergabe eingeschränkt werden. Leider geht dies bis PHP 7.0 nur bei Objekten, nicht bei anderen Datentypen, z.b. bei Arrays. Ab PHP 7.0 ist ein Spezialfall der Type Hints. 32

33 interface I interface File { public function read(); public function write(); public function open();... class Document implements File { public function read() { Ein Interface ist eine Klasse mit Methoden ohne Body. Eine Klasse "erbt" von einem Interface durch das Schlüsselwort implements. Von Interfaces können keine Instanzen gebildet werden. 33

34 interface II Möglichst, am besten immer: Vorher deklarieren, dann instantiieren bzw. benutzen. Es können mehrere Interfaces realisiert, aber nur von einer Klasse per extends geerbt werden - also wie in Java. Bei Interface-Klassen gibt es kein class-schlüsselwort. 34

35 abstract I abstract class File { abstract public function read(); abstract public function write(); abstract public function open();... class Document extends File { public function read() { Um Klassenrümpfe realisieren zu können, wird abstract benutzt. abstract kann vor class oder function stehen. Von einer Klasse mit mindestens einer abstract-komponente kann keine Instanz gebildet werden; also wie in Java. 35

36 abstract II Wenn eine Klasse schon eine einzige abstrakte Methode enthält, muss die ganze Klasse als abstrakt gekennzeichnet werden. Im Klassenkörper können abstrakte und konkrete Methoden beliebig gemischt auftreten. Abstrakte Methoden können nicht als final gekennzeichnet werden, da diese ja per Vererbung konkretisiert werden müssen. 36

37 Wrapper-Klassen I Eine Wrapper-Klasse verdeckt die Schnittstelle einer anderen Klasse zwecks Anpassung oder Vereinheitlichung. Als erstes wird eine Interface-Klasse definiert (Beispiel): interface SQL_DB { function connect($server, $user, $password); function query($sql); function disconnect(); 37

38 Wrapper-Klassen II Beispiel zum Verdecken von Oracle-Spezifika: require_once 'SQL_DB.php'; class Oracle implements SQL_DB { function connect($server, $user, $password) { function query($sql) { function disconnect() { 38

39 Wrapper-Klassen III Beispiel zum Verdecken von MySQL-Spezifika: require_once 'SQL_DB.php'; class MySQL implements SQL_DB { function connect($server, $user, $password) { function query($sql) { function disconnect() { 39

40 UML-Version (Wrapper mit Interface) <<interface>> SQL_DB connect() query() disconnect() <<realize>> <<realize>> MySQL Oracle connect() query() disconnect() connect() query() disconnect() call call MySQLi OCI8 40

41 Fabrik/Factory-Klasse I Eine Fabrik/Factory-Klasse dient dazu, den Aufbau eines Objektes oder eines Geflechts von Objekten zu realisieren und damit auch zu verdecken. Regel/Empfehlung: Verwende immer dann Fabrik-Klassen, wenn beim Aufbau mehrere Klassen alternativ verwendbar sind, also wenn eine Konfiguration möglich ist, der Aufbau vernetzter Objekte komplex ist, der Aufbau versteckt werden soll/muss. 41

42 Fabrik/Factory-Klasse II class DB { static function Access($type) { if ($type==="oracle") { return new Oracle(); elseif($type==="mysql") { return new MySQL(); else { die("unbekannter Datenbanktyp: ".$type); // schlechte Fehlerbehandlung! Benutzung $OurDB= DB::Access("MYSQL"); $OurDB->Connect(" ", "root", "Geheim"); 42

43 Nach dieser Anstrengung etwas Entspannung... 43

Programmieren in Java

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

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

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

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Vererbung, Polymorphie

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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

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

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

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. 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

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

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

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte Programmierung. Kapitel 14: Interfaces 14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 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,

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

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,

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Dynamische Webseiten mit PHP. Oder: LAMP - The open way Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH 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

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Fragen zur OOP in Java

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?...

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele 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]

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

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

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

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

Mehr

6. Globalübung (zu Übungsblatt 8)

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

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie 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

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

1 Klassen und Objekte

1 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

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

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

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

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.

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

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

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP 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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 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

Mehr

Objektorientierung (OO)

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

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: 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

Mehr

Programmieren in Java -Eingangstest-

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

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Innere 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 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

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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:

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

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 -

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Vererbung und Polymorphie

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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Programmieren in Java

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

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

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

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte

Mehr

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr

Überschreiben von Methoden

Ü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

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH 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

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsü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)

Mehr

Programmieren I. Kapitel 10. Spezielle Features

Programmieren I. Kapitel 10. Spezielle Features Programmieren I Kapitel 10. Spezielle Features Kapitel 10: Spezielle Features Ziel: Besonderheiten von Java bei OO Konzepten statische Attribute und Methoden innere, verschachtelte und lokale Klassen anonyme

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

Mehr

Java Einführung Vererbung und Polymorphie. Kapitel 13

Java 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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Repetitorium Informatik (Java)

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

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Einführung in die Programmiersprache Java II

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

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

Einführung in C# Teil 3. Matthias Nübling

Einfü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,

Mehr

Das Ersetzbarkeitsprinzip

Das 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

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Dienstag Inhaltsübersicht Variablen: Membervariablen und lokale Variablen Referenzvariablen: Arrays und Objekte anlegen Definition von Funktionen: Methoden Konstruktoren

Mehr

Interfaces und Vererbung

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

Mehr

Objektorientierte Programmierung und Klassen

Objektorientierte 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

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen 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

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

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

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Vorausgesetzte 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,

Mehr

Java Vererbung. Inhalt

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

Mehr

II.4.5 Generische Datentypen - 1 -

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

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

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,

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr