TIAI1004: Programmierung

Größe: px
Ab Seite anzeigen:

Download "TIAI1004: Programmierung"

Transkript

1 Teil 6: Objektorientierte Programmierung (II) Gliederung Pakete Zugriffsrechte für Klassen Studiengang Angewandte Informatik Dozent: Stand: Organisation von Klassen (I) Bisher: Klassen wurden entwickelt und abgespeichert Bei größeren Entwicklungen wird Struktur innerhalb einer Sammlung von Klassen benötigt In Java gibt es die Strukturierungsmöglichkeit über Pakete (Packages): - Ermöglichen das Zusammenfassen (inhaltlich) verwandter Klassen - Stellen für die Klassen des Pakets einen Namensraum zur Verfügung Paket ist benannte Sammlung von Klassen Java liefert eine Reihe von Paketen mit, z.b.: - java.lang: Enthält die fundamentalsten Klassen - java.util: Enthält diverse Hilfsklassen - java.io: Enthält Klassen für Ein-/Ausgabefunktionalität - Pakete können ihrerseits wieder Unterpakete (Subpackages) enthalten Beispielsweise gibt es im Paket java.lang das Unterpaket ref, welches mittels java.lang.ref angesprochen wird Organisation von Klassen (II) Jede Klasse hat einfachen Namen (den aus der Klassendefinition) und vollqualifizierten Namen (der auch den Namen des Paketes enthält) - Die Klasse String hat den einfachen Namen String - Da sie zum Paket java.lang gehört hat sie außerdem den vollqualifizierten Namen java.lang.string Pakete definieren: - Um eine Klasse einem Paket zuzuordnen, muss die erste Anweisung im Quellcode package <Paketname>; lauten - Damit werden alle Klassen dieser Datei dem entsprechenden Paket zugeordnet - Wird die package-anweisung weggelassen, so gehören die Klassen zu einem unbenannten Standardpaket (Default Package)

2 Verwendung von Klassen Verwendung von Klassen: - Klassen aus demselben Paket können über ihren einfachen Namen angesprochen werden - Klassen aus anderen Paketen müssen über ihren vollqualifizierten Namen angesprochen werden - Ausnahme: Weil das Paket java.lang so essentielle Klassen enthält, die ständig gebraucht werden, können die Klassen auch über ihren einfachen Namen angesprochen werden (String anstelle von java.lang.string) Import (I) Insgesamt gibt es vier Möglichkeiten des Imports: - Eine einzelne Klasse wird mit der Anweisung import <Paketname>.<Klassenname>; importiert Verwendung: <Klassenname> k = new <Klassenname>(); - Alle Klassen eines ganzen Pakets werden mit der Anweisung import <Paketname>.*; importiert Verwendung: siehe oben - Ein ganzes Paket wird mit import <Paketname>.<Unterpaketname>; importiert Verwendung: <Unterpaketname>.<Klassenname> k = new <Unterpaketname>.<Klassenname>(); - Verwendung ohne import-anweisung: <Paketname>.<Unterpaketname>.<Klassenname> k = new <Paketname>.<Unterpaketname>.<Klassenname>(); Import (II) Anmerkungen zum Importieren: - import-anweisungen müssen direkt hinter der package-anweisung stehen - Es können beliebig viele import-anweisungen in einer Datei verwendet werden - Durch die Anweisung import <Paketname>.*; wird kein Unterpaket importiert; dieses muss explizit durch import <Paketname>.<Unterpaketname>.*; geschehen - Durch import-anweisungen können aus zwei Paketen gleich benannte Methoden importiert werden; dieser Namenskonflikt wird durch Nennung des vollqualifizierten Namens aufgelöst Organisation von Klassen Global eindeutige Paketnamen: - Benennt jede/r Entwickler/in seine/ihre Pakete einfach so, kann es zu Namenskonflikten kommen - Daher sind globale Bennennungskonventionen notwendig - Sun kontrolliert alle Pakete, die mit java, javax und sun beginnen - Für alle anderen Entwickler gilt: Vor den Paketnamen ist der umgedrehte Name der eigenen Internetdomäne zu setzen - Bsp.: Lautet die Internetdomäne ba-horb.de, so sind die Pakete alle mit dem Präfix de.bahorb zu versehen - Innerhalb dieses Namensraums besteht Freiheit in der Organisation der Pakete bzw. Unterpakete

3 Kompilieren von Paketen Alle Klassen eines Paketes müssen sich in einem Verzeichnis befinden In einem Verzeichnis darf sich nur ein Paket befinden Name des Verzeichnis muss dem Paketnamen entsprechen Kompilieren vom Verzeichnis oberhalb mit javac <Paketname>\*.java Zur Verwendung des Paketes Umgebungsvariable CLASSPATH auf das Verzeichnis oberhalb setzen Umgebungsvariable CLASSPATH CLASSPATH ist eine Umgebungsvariable des Betriebssystems CLASSPATH enthält alle Verzeichnisse (bzw. jar-dateien), in denen Compiler und Interpreter nach Paketen suchen sollen Setzen von CLASSPATH: - Linux mit csh: setenv CLASSPATH <Pfad1>:<Pfad2>: - Linux mit bash: setenv CLASSPATH = <Pfad1>:<Pfad2>: - Windows: Unter Systemsteuerung System Register Erweitert Button Umgebungsvariablen Anmerkungen: -. muss für anonyme Pakete in den CLASSPATH aufgenommen werden - Verzeichnis der JDK-Klassenbibliothek muss nicht in den CLASSPATH aufgenommen werden p Klasse1.java Klasse2.java Klasse3.java 6-9 Paket p 6-10 Pakete in UML (I) Pakete in UML (II) Auch die UML kennt Pakete als Strukturierungsmittel zur Zusammenfassung von Klassen Notation: Paketname Klasse 1 Klasse 2 Klasse 3 Pakete können in sich geschachtelt sein Notation: Paketname Klasse 1 Klasse 2 Klasse 3 Unterpaket Klasse 1 Klasse 2 Klasse 3 Anmerkung: In UML-Modellierungswerkzeugen wird typischerweise keine Auflistung verwendet, sondern mittels Click and Zoom kann man sich die zugehörigen Klassen anzeigen lassen Zwischen Paketen vorliegende Abhängigkeiten können in der UML dargestellt werden: Paket 1 Paket 2 Klasse 1 Klasse 2 Klasse 3 Klasse 1 Klasse 2 Klasse 3 Paket 1 ist von Paket 2 abhängig

4 Übersicht Pakete Zugriffsrechte für Klassen Zugriff Bisher: Keine Berücksichtigung über Zugriff auf Klassen von außen Zugriffsschutz kann auf verschiedenen Ebenen betrachtet werden: - Pakete - Klassen - Attribute/Methoden Zugriff auf Pakete: - Paket ist für Code im selben Paket erreichbar - Ob auch auf andere Pakete zugegriffen werden darf, ist nicht in Java selber geregelt - Hängt davon ab, wo dieses Paket abgelegt ist und ob der/die Benutzer/in mindestens lesende Zugriffsrechte auf dieses Verzeichnis hat Zugriffsrechte auf Klassen Klassen können bei ihrer Definition mit einem Zugriffsmodifier versehen werden Syntax: [Modifiers] class <Klassenname> Klasse ist standardmäßig (bei Weglassen des Modifier) innerhalb ihres Paketes zugreifbar class Landfahrzeug{} Wird der Modifier public verwendet, so ist die Klasse auch außerhalb des eigenen Paketes zugreifbar public class Landfahrzeug{} Ebenso zu den Modifiern zählen abstract und final Modifier dürfen miteinander kombiniert werden, wobei die Kombination abstract final verboten ist Alle mögliche Kombinationen sind also: kein Modifier, final, abstract, public, public final, public abstract Übersicht Pakete Zugriffsrechte für Klassen

5 Klassenvariablen (I) W.D.H.: - Attribute einer Klasse werden durch Angabe des Datentyps und des Namens angelegt - Durch Voranstellen des Schlüsselworts final wird statt einer Variablen eine Konstante angelegt Bisher angelegte Variablen sind sog. Instanzvariablen Sie beschreiben eine Eigenschaft eines einzelnen Objektes und es wird pro angelegtem Objekt auch eine Variable angelegt Daneben gibt es Klassenvariablen, die nur einmal pro Klasse existieren Syntax: static <Datentyp> <Attributname> Objekte der Klasse können Klassenvariablen ganz normal über die Punktnotation ansprechen Klassenvariablen (II) Instanzzähler einer Klasse ( 1) public class Fahrzeug{ ( 2) static int anzobjekte = 0; ( 3) public Fahrzeug(){ ( 4) ++anzobjekte; ( 5) <Weitere Anweisungen> ( 6) } ( 7) public void finalize(){ ( 8) --anzobjekte; ( 9) <Weitere Anweisungen> (10) } (11) (12) } Klassen als Datentypen Als Datentyp eines Attributs können neben einfachen Datentypen auch andere Klassen verwendet werden ( 1) class Rad{} ( 2) ( 3) class Motor{} ( 4) ( 5) class Fahrzeug{ ( 6) String name; ( 7) Motor m; ( 8) Rad[] r; ( 9) (10) } Attributzugriffsrechte Jedem Attribut kann bestimmtes Zugriffsrecht zugeordnet werden Zugriffsspezifikation: - Auf Attribute innerhalb einer Klasse kann immer von Methoden der gleichen Klasse zugegriffen werden - Für Methoden anderer Klassen sind aber Beschränkungen möglich - Standardwert (Weglassen des Zugriffswertes) deklariert Attribut als paketsichtbar, d.h. Attribut darf sowohl innerhalb der Klasse als auch innerhalb des eigenen Paketes von außen manipuliert werden Beispiel: int i; - Mit Zugriffswert public kann Attribut aus allen anderen Klassen und Paketen manipuliert werden; Bsp.: public int i; - Mit Zugriffswert protected ist Attribut nur im eigenen Paket und in allen Unterklassen auch in anderen Paketen (dies ist der Unterschied zu paketsichtbar) zugreifbar; Bsp.: protected int i; - Mit Zugriffswert private ist Attribut nur innerhalb der eigenen Klasse zugreifbar; Bsp.: private int i;

6 Attribut-Zugriffsrechte in UML Auch in UML-Notation können die Zugriffsrechte dargestellt werden: - public wird durch das Symbol + dargestellt - private wird durch das Symbol - dargestellt - protected wird durch das Symbol # dargestellt Fahrzeug + Bezeichnung : Textfeld(50) - PS_Zahl : Zahl - Räder : Zahl Übersicht Pakete Zugriffsrechte für Klassen Zugriffsspezifikation von Methoden (I) Bisher: Methodendeklaration bestand aus Rückgabewert, Name und Parameterliste Nun: Erweiterung um Zugriffsrechte und Modifier Syntax: [Zugriffswert] [Modifier] <Rückgabewert> <Name> (<Parameterliste>) Zugriffsspezifikation: - Methoden innerhalb einer Klasse können immer auf andere Methoden der gleichen Klasse zugreifen - Für Methoden anderer Klassen sind aber Beschränkungen möglich - Standardwert (Weglassen des Zugriffswertes) deklariert die Methode als paketsichtbar, d.h. Methode darf sowohl innerhalb der Klasse als auch innerhalb des eigenen Paketes verwendet werden - Mit Zugriffswert public können Methoden aus allen anderen Klassen und Paketen auf Methode zugreifen Beispiel: public int quadrat(i); Zugriffsspezifikation von Methoden (II) Zugriffsspezifikation (Fortsetzung): - Mit Zugriffswert protected ist Methode nur in ihrem Paket und in allen Unterklassen zugreifbar Beispiel: protected int quadrat(i); - Mit Zugriffswert private ist Methode nur für die anderen Methoden innerhalb der eigenen Klasse zugreifbar Beispiel: private int quadrat(i); - Auch Unterklassen dürfen nicht auf private Methoden ihrer Oberklasse zugreifen

7 Zugriffsspezifikation von Methoden in UML Auch in UML-Notation können die Zugriffsrechte dargestellt werden (analog zu den Zugriffsrechten bei Attributen): - public wird durch das Symbol + dargestellt - private wird durch das Symbol - dargestellt - protected wird durch das Symbol # dargestellt Fahrzeug + bewegen() # Verbrauch auf km(kmzahl) Klassen als Rückgabe- und Parametertyp In Methoden dürfen sowohl der Rückgabetyp als auch der Typ eines Parameters nicht nur einfache Datentypen, sondern auch Objekttypen sein ( 1) public class Fahrzeug{ ( 2) ( 3) static Fahrzeug kopieren(fahrzeug f){ ( 4) return f; ( 5) } ( 6) ( 7) public static void main (String[] args){ ( 8) Fahrzeug f = new Fahrzeug(); ( 9) Fahrzeug g = new Fahrzeug(); (10) g = kopieren(f); (11) } (12) } Klassen- und Instanzmethoden Instanzmethoden sind für jedes einzelne Objekt einer Klasse definiert Klassenmethoden sind nur einmal für eine Klasse definiert Klassenmethoden werden mit dem Schlüsselwort static deklariert und heißen daher auch statische Methoden Beispiele: - main-methode ist eine statische Methode - public static double quadrat(double i){ return i*i; } Beim Aufrufen einer statischen Methode außerhalb ihrer Klasse müssen sowohl Klassen- als auch Methodenname angegeben werden: double d = GanzeZahl.quadrat(5.0); Klassenmethoden: - Können keine Instanzmethoden aufrufen - Dürfen nur überschrieben werden, wenn die Methode der Unterklasse auch wieder statisch ist 6-27 Statischer Import Statische Attribute und statische Methoden sind mit bisherigen Mitteln etwas umständlich durch Voranstellen des Klassennamens anzusprechen float radius = 4; System.out.println("Umfang = " + 2*Math.PI*radius); System.out.println("Sinus("+radius+") = "+Math.sin(radius)); Mit einem statischen Import mittels import static java.lang.math.*; werden alle statischen Attribute und Methoden der Klasse importiert Damit kann der Code von oben wie folgt geschrieben werden: System.out.println("Umfang = " + 2*PI*radius); System.out.println("Sinus("+radius+") = " + sin(radius)); Anmerkung: - import java.util.* und import static java.lang.math.* sehen ähnlich aus - Aber: Einmal werden alle Klassen aus Paket importiert, einmal alle statischen Attribute und Methoden einer Klasse 6-28

8 Finale Methoden Finale Methoden sind Methoden, die in keiner Unterklasse überschrieben werden dürfen Kennzeichnung erfolgt durch das Schlüsselwort final final int berechne(int a, float b); Zweck: Implementierung der Methode ist Standard, der nicht verändert werden soll Abstrakte Methoden (I) Abstrakte Methoden sind Methoden, die in einer Klasse zwar deklariert, aber nicht implementiert werden Syntax: Kennzeichnung erfolgt durch das Schlüsselwort abstract, der Methodenrumpf wird einfach weggelassen abstract int zeichne(); Zweck: Deklaration der Methode ist an dieser Stelle zwar passend, aber Realisierung erfolgt erst in Unterklassen, wird hier in unterschiedlicher Art und Weise vorgenommen Jedes Fahrzeug hat eine Methode bewege(), aber die Implementierung ist so individuell, dass sie erst in den Unterklassen sinnvoll ist Abstrakte Methoden (II) Anmerkungen: - Abstrakte Methoden dürfen nur in abstrakten Klassen deklariert werden, sonst Fehlermeldung: <Klasse> should be declared abstract; it does not define <Methode> in <Klasse> - Statische Methoden dürfen nicht als abstract deklariert werden, sonst Fehlermeldung: illegal combination of modifiers: abstract and static - Abstrakte Methoden dürfen nicht gleichzeitig auch als final deklariert werden, sonst Fehlermeldung: illegal combination of modifiers: abstract and final - Konstruktoren dürfen zwar als abstract deklariert werden (d.h. beim Compilieren erfolgt keine Fehlermeldung), jedoch ist dies nicht sinnvoll - Wenn eine Unterklasse nicht alle abstrakten Methoden überschreibt, dann muss auch sie als abstract deklariert werden Weitere Methodenmodifier Native Methoden - Sind nicht in Java, sondern meistens in C/C++ geschrieben - Beispiel: native int berechne(int a, float b); - Zweck: Verwendung bereits vorhandener Bibliotheken - Problem: Plattformunabhängigkeit geht verloren Methoden synchronisieren - Versuchen zwei Methoden auf gleiche Daten zuzugreifen, kann es zu Problemen in Form von Datenverletzungen kommen - Dieses kann durch Synchronisation vermieden werden - Beispiel: synchronized int berechne(int a, float b); - In Objekt dürfen nie zwei als synchronized deklarierte Methoden gleichzeitig ablaufen - Anm.: Synchronisierte Methoden werden im separaten VL-Abschnitt Multithreading behandelt

9 Methoden: Namenskonventionen in Java Zwingend: - Methodennamen dürfen prinzipiell eine unbeschränkte Länge haben (bis auf technische Einschränkungen durch das System) - Methodennamen müssen (wie alle anderen Java-Bezeichner) mit einem Buchstaben oder einem der beiden Zeichen _ oder $ beginnen, alle weiteren Zeichen dürfen Buchstaben, Zahlen und ein paar Sonderzeichen sein - Bei Methodennamen wird (wie bei allen anderen Bezeichnern in Java) Großund Kleinschreibung unterschieden - Methodennamen dürfen (wie andere Bezeichner auch) nicht einem Java- Schlüsselwort entsprechen Üblich: - Methodennamen sollten möglichst aussagekräftig sein ( Sprechende Bezeichner ) - Methodennamen sollten mit einem Kleinbuchstaben beginnen, dann sollten weitere Kleinbuchstaben folgen - Besteht der Name aus mehreren Wörtern, so sollten diese zusammengeschrieben werden und neues Wort mit Großbuchstaben beginnen 6-33 Konstruktoren und Modifier Konstruktoren dürfen nicht als native, static, synchronized oder final deklariert werden Somit bleiben noch der Standard Paket-sichtbar (keine Modifier-Angabe) und die Deklaration als public übrig Meistens werden die Konstruktoren als public deklariert Anmerkung: Überschreiben von Konstruktoren ist rein technisch nicht möglich, denn sie müssen ja immer den gleichen Namen wie ihre Klasse haben 6-34 Zusammenfassung Sichtbarkeit Modifier public protected private Default (Paket-sichtbar) Sichtbarkeit In Methoden der Klasse selbst In Methoden abgeleiteter Klassen In Methoden des Paketes In Methoden anderer Pakete, keine Unterklasse In Methoden der Klasse selbst In Methoden abgeleiteter Klassen, auch in anderen Paketen In allen Klassen desselben Pakets Nur in Methoden der Klasse selbst In allen Klassen desselben Paketes Übersicht Pakete Zugriffsrechte für Klassen

10 Kapselung Kapselung ist ein ganz wichtiges Konzept der Objektorientierung Dabei werden Klassen von außen nur über eine Schnittstelle angesprochen und von interner Realisierung abstrahiert Realisiert werden kann dies, indem alle Attribute als private deklariert werden und für jedes von außen les- bzw. veränderbare Attribut eine Methode definiert wird Diese Methoden tragen typischerweise die Bezeichnungen get<attributname> bzw. set<attributname> Anschaulich: M 7 M 8 M 1 A 1 A 2 M 2 Beispiel In folgender Klasse sind alle Attribute gekapselt: ( 1) public class Fahrzeug{ ( 2) private String name; ( 3) private int raeder; ( 4) private int pszahl; ( 5) ( 6) public void setname(string s){name = s;} ( 7) public String getname(){return name;} ( 8) public void setraeder(int r){raeder = r;} ( 9) public int getraeder(){return raeder;} (10) public void setpszahl(int z){pszahl = z;} (11) public int getpszahl(){return pszahl;} (12) (13) } M 6 A 3 A 4 M 3 M 5 M Abstrakter Datentyp Zusammenfassung Kapselung ist die Umsetzung bzw. Weiterführung des Konzeptes des ADT (Abstrakter Datentyp) (Siehe auch Informatik-VL) Abstrakte Datentypen auch in nicht OO-Sprachen Abstrakter Datentyp: - Name - Funktionen/Methoden auf dem Datentypen - Evtl. weitere Axiome ADT Stapel - Speicherstruktur, die das LIFO-Prinzip realisiert (Last In First Out) - Funktionen: - push(o): Legt das Objekt o auf dem Stapel ab - pop(): Liest und entnimmt das oberste Element vom Stapel - peek(): Liest oberstes Element vom Stapel ohne es zu entfernen - isempty(): Prüft, ob der Stapel leer ist Informationen über die interne Realisierung werden bei einem ADT nicht angegeben Pakete: - Organisation großer Mengen von Klassen - Java-Anweisungen package und import - UML-Notation Zugriffsrechte für Klassen: - Öffentliche und nicht-öffentliche Klassen - Statische Attribute (Klassenattribute) - Zugriffsrechte (public, private, protected) - Statische Methoden (Klassenmethoden) - Zugriffsrechte (public, private, protected) - Finale und abstrakte Methoden - Konstruktoren und Modifier

TIAI1004: Programmierung

TIAI1004: Programmierung Teil 6: Objektorientierte Programmierung (II) Studiengang Angewandte Informatik Dozent: Stand: 6-1 Gliederung Pakete Zugriffsrechte für Klassen Attribute (Vertiefung) Methoden (Vertiefung) Kapselung, ADT

Mehr

10. Pakete. Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek.

10. Pakete. Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek. 10. Pakete Grundlagen zu Paketen 10. Pakete Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek. Beispiele: java.lang: Standardklassen zur Sprache

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

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

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

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

7. Übung Informatik II - Objektorientierte Programmierung

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

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

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

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object

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

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

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

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Klassen und Konstruktoren in Java

Klassen und Konstruktoren in Java Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden. Objektzugriff Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden. Attribute sind in der Klasse mit Datentyp und Namen deklariert im Objekt sind sie mit jeweils

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

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

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

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Pakete. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Pakete. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Pakete Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 4.7.07 G. Bohlender (IANM UNI Karlsruhe) Pakete 4.7.07 1 / 8 Übersicht 1 Einführung

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Modularisierung in Java: Pakete Software Entwicklung 1

Modularisierung in Java: Pakete Software Entwicklung 1 Modularisierung in Java: Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Um zusammengehörende Klassen, Interfaces, etc. gemeinsam zu verwalten, Sichtbarkeiten einzugrenzen und

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Praxis der Programmierung

Praxis der Programmierung Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort

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

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

Arten von Klassen-Beziehungen

Arten von Klassen-Beziehungen Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.

Mehr

Sichtbarkeiten, Klassenmember und -methoden

Sichtbarkeiten, Klassenmember und -methoden Sichtbarkeiten, Klassenmember und -methoden Prof. Dr.-Ing. Thomas Schwotzer 11. November 2017 1 Einführung Wir haben uns mit Klassen und Objekten beschäftigt. Wir wissen nun, dass Objekte anhand von Klassen

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Pakete Software Entwicklung 1

Pakete Software Entwicklung 1 Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Organisation von Klassen- und Interface-Deklaration Java-Programme bestehen aus Typdeklarationen, d.h. Klassen- und Interface-Deklarationen.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Zugriffsrechte und Packages

Zugriffsrechte und Packages Zugriffsrechte und Packages Allgemeine Informatik I Wintersemester 2013/14 Karsten Weihe Schnitt: Sascha Weiß Mit freundlicher Unterstützung des elc der TU Darmstadt Komplexer Typ Klasse Interface Standardbibliothek

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

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

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

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Begriffe 1 (Wiederholung)

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

Mehr

Faustregeln zu Zusicherungen

Faustregeln zu Zusicherungen Faustregeln zu Zusicherungen Zusicherungen sollen stabil sein (vor allem an Wurzel der Typhierarchie) keine unnötigen Details festlegen explizit im Programm stehen unmissverständlich formuliert sein während

Mehr

Teil 2: Weitere Aspekte der Objektorientierung

Teil 2: Weitere Aspekte der Objektorientierung Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 08: Mehr zu Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Wiederholung Heutige Agenda Verwendung der ArrayList 2. Teil: Weitere Aspekte der OO

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

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

Abschnitt 10: Klassen, Objekte und Methoden in Java

Abschnitt 10: Klassen, Objekte und Methoden in Java Abschnitt 10: Klassen, Objekte und Methoden in Java 10. Klassen, Objekte und Methoden in Java 10.1 Klassen 10.2 Objekte 10.3 Methoden 10.4 Zusammenfassung 10 Klassen, Objekte und Methoden in Java Einf.

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

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

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

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

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode: Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

10. Pakete Einführung in die Programmierung (fbw) Sommersemester 2007 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

10. Pakete Einführung in die Programmierung (fbw) Sommersemester 2007 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 10. Pakete Einführung in die Programmierung (fbw) Sommersemester 2007 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in die

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

Wiederholung. Klassenhierarchie:

Wiederholung. Klassenhierarchie: Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse

Mehr

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 12: Strukturierung von Java-Programmen: Packages Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung

Mehr

Philipp Güttler Objektorientierung und komplexe Datentypen

Philipp Güttler Objektorientierung und komplexe Datentypen Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen

Mehr

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Programmiertechnik Objektorientierung, Teil 2

Programmiertechnik Objektorientierung, Teil 2 Programmiertechnik Objektorientierung, Teil 2 Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Einschub: Pakete Java-Klassen können in Paketen organisiert sein. Ein Paket (package) ist eine Sammlung

Mehr

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz Stefan Brass: OOP (Java), 16. Pakete, Zugriffsschutz 1/30 Objektorientierte Programmierung Kapitel 16: Pakete, Zugriffsschutz Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14

Mehr

Objektorientierte Programmierung. Kapitel 15: Quelldateien, Pakete, Zugriffsschutz

Objektorientierte Programmierung. Kapitel 15: Quelldateien, Pakete, Zugriffsschutz Stefan Brass: OOP (Java), 15. Quelldateien, Pakete, Zugriffsschutz 1/40 Objektorientierte Programmierung Kapitel 15: Quelldateien, Pakete, Zugriffsschutz Stefan Brass Martin-Luther-Universität Halle-Wittenberg

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

Prozeduren vs. Funktionen

Prozeduren vs. Funktionen Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen

Mehr

Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten

Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten Noch ein Beispiel Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten public class Konto { private String kundenname; private double kontostand; private double

Mehr

Einführung in die Programmierung I. 10. Klassen und Objekte. Stefan Zimmer

Einführung in die Programmierung I. 10. Klassen und Objekte. Stefan Zimmer Einführung in die Programmierung I 10. Klassen und Objekte Stefan Zimmer 14.1.2008 Objektorientierte Programmierung Ein wesentliches Prinzip in Java haben wir bisher umgangen: die objektorientierte Programmierung.

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

OOP. Tagesprogramm. Beziehungen zwischen Typen Vererbung Sichtbarkeit

OOP. Tagesprogramm. Beziehungen zwischen Typen Vererbung Sichtbarkeit 1 2016-11-16 Tagesprogramm Beziehungen zwischen Typen Vererbung Sichtbarkeit 2 2016-11-16 Beziehungen zwischen Typen Abstrakte Klassen und Interfaces public abstract class Polygon { public abstract void

Mehr

Untertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit

Untertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 1 185.A01 OOP Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 2 OOP Abstrakte Klassen Polygon ւ ց Triangle Square Hexagon

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik 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

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

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

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 3 2 Übersicht der heutigen Inhalte Pakete Beispiel zur Verdeckung Polymorphie Modifikatoren bei Klassenelementen 3 Zusammenhang

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

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

STRUKTURIERUNG VON PROGRAMMEN

STRUKTURIERUNG VON PROGRAMMEN Kapitel 1 STRUKTURIERUNG VON PROGRAMMEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Übersicht 1 1. Strukturierung von Programmen 2. Vererbung 3. Abstrakte Klassen und Interfaces 4. Ausnahmebehandlung

Mehr