TIAI1004: Programmierung

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

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

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

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

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

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

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Syntax und Semantik Java: Der Einstieg Imperative Programmierung in Java Algorithmen zur exakten Suche in Texten Objektori Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät

Mehr

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich. Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen

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

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

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

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

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

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

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

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1 Java: Der Einstieg Algorithmen und Datenstrukturen II 1 Grundlegendes zu Java: Historisches 1990-1991: Entwicklung der Programmiersprache OAK durch James Gosling von Sun Microsystems (zunächst für Toaster,

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

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete Grundlagen der Programmierung Prof. H. Mössenböck 15. Pakete Idee Paket = Sammlung zusammengehöriger Klassen (Bibliothek) Zweck mehr Ordnung in Programme bringen bessere Kontrolle der Zugriffsrechte (wer

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

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen?

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? Kapitel 2 1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? 1. Durch das Verwenden von Untertypbeziehungen: Untertypen können oft einen Großteil

Mehr

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte 5 Vererbung Subklassen, Superklassen, Pakete Zugriffsrechte Wiederverwendung von Code Konventionelle Methode: Wähle einen Quelltext, der ein ähnliches Problem bearbeitet und passe diesen Text auf das neue

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

7. Pakete Grundlagen der Programmierung 1 (Java)

7. Pakete Grundlagen der Programmierung 1 (Java) 7. Pakete Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 29. November 2005 Einordnung im Kontext der Vorlesung 1.

Mehr

1. Abstrakte Klassen

1. Abstrakte Klassen 1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,

Mehr

Autoboxing - Nachtrag

Autoboxing - Nachtrag Autoboxing - Nachtrag Mit dem Autoboxing ist eine Reihe von Unregelmässigkeiten verbunden, die der Programmierer beachten muss, um Fehler zu vermeiden. aus: Christian Ullenboom Java ist auch eine Insel

Mehr

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden

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

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

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

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

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,

Mehr