TIAI1004: Programmierung

Größe: px
Ab Seite anzeigen:

Download "TIAI1004: Programmierung"

Transkript

1 Teil 6: Objektorientierte Programmierung (II) Studiengang Angewandte Informatik Dozent: Stand: 6-1

2 Gliederung Pakete Zugriffsrechte für Klassen Attribute (Vertiefung) Methoden (Vertiefung) Kapselung, ADT 6-2

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

4 Organisation von Klassen (II) Jede Klasse hat einfachen Namen (den aus der Klassendefinition) und vollqualifizierten Namen (der auch den Namen des Paketes enthält) Beispiel: - 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) 6-4

5 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) 6-5

6 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>(); 6-6

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

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

9 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 p Klasse1.java Klasse2.java Klasse3.java 6-9 Paket p

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

11 Pakete in UML (I) Auch die UML kennt Pakete als Strukturierungsmittel zur Zusammenfassung von Klassen Notation: Paketname 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 6-11

12 Pakete in UML (II) Pakete können in sich geschachtelt sein Notation: Paketname Klasse 1 Klasse 2 Klasse 3... Unterpaket Klasse 1 Klasse 2 Klasse 3... 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 6-12

13 Übersicht Pakete Zugriffsrechte für Klassen Attribute (Vertiefung) Methoden (Vertiefung) Kapselung, ADT 6-13

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

15 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 Beispiel: class Landfahrzeug{...} Wird der Modifier public verwendet, so ist die Klasse auch außerhalb des eigenen Paketes zugreifbar Beispiel: 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 6-15

16 Übersicht Pakete Zugriffsrechte für Klassen Attribute (Vertiefung) Methoden (Vertiefung) Kapselung, ADT 6-16

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

18 Klassenvariablen (II) Beispiel: 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) } 6-18

19 Klassen als Datentypen Als Datentyp eines Attributs können neben einfachen Datentypen auch andere Klassen verwendet werden Beispiel: ( 1) class Rad{...} ( 2) ( 3) class Motor{...} ( 4) ( 5) class Fahrzeug{ ( 6) String name; ( 7) Motor m; ( 8) Rad[] r; ( 9)... (10) } 6-19

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

21 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 Beispiel: Fahrzeug + Bezeichnung : Textfeld(50) - PS_Zahl : Zahl - Räder : Zahl

22 Übersicht Pakete Zugriffsrechte für Klassen Attribute (Vertiefung) Methoden (Vertiefung) Kapselung, ADT 6-22

23 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); 6-23

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

25 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 Beispiel:... Fahrzeug + bewegen() # Verbrauch auf km(kmzahl)

26 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 Beispiel: ( 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) } 6-26

27 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

28 Statischer Import Statische Attribute und statische Methoden sind mit bisherigen Mitteln etwas umständlich durch Voranstellen des Klassennamens anzusprechen Beispiel: 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

29 Finale Methoden Finale Methoden sind Methoden, die in keiner Unterklasse überschrieben werden dürfen Kennzeichnung erfolgt durch das Schlüsselwort final Beispiel: final int berechne(int a, float b); Zweck: Implementierung der Methode ist Standard, der nicht verändert werden soll 6-29

30 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 Beispiel: 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 Beispiel: Jedes Fahrzeug hat eine Methode bewege(), aber die Implementierung ist so individuell, dass sie erst in den Unterklassen sinnvoll ist 6-30

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

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

33 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

34 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

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

36 Übersicht Pakete Zugriffsrechte für Klassen Attribute (Vertiefung) Methoden (Vertiefung) Kapselung, ADT 6-36

37 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 8 M 1 M 7 A 1 A 2 M 2 M 6 A 3 A 4 M 3 M 5 M

38 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) } 6-38

39 Abstrakter Datentyp 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 Beispiel: 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 6-39

40 Zusammenfassung Pakete: - Organisation großer Mengen von Klassen - Java-Anweisungen package und import - UML-Notation Zugriffsrechte für Klassen: - Öffentliche und nicht-öffentliche Klassen Attribute (Vertiefung) - Statische Attribute (Klassenattribute) - Zugriffsrechte (public, private, protected) Methoden (Vertiefung) - Statische Methoden (Klassenmethoden) - Zugriffsrechte (public, private, protected) - Finale und abstrakte Methoden - Konstruktoren und Modifier Kapselung, ADT 6-40

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

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

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

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

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

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

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

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

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

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

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

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

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Algorithmen und Datenstrukturen 07

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

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean Inhalt 9 Klassen... 9-2 9.1 Instanzvariablen und Instanzmethoden... 9-2 9.1.1 Vereinbarung... 9-2 9.1.2 this - Selbstreferenz... 9-5 9.1.3 tostring()... 9-5 9.2 Klassenvariablen und Klassenmethoden...

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Klassenbeziehungen & Vererbung

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

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

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

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

Mehr

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java Kapitel 2 Java: Der Einstieg Im vorigen Kapitel haben wir die Syntax der Sprache Mini-Java kennengelernt. Bevor wir in Kapitel 3 ausführlich auf Syntax und Semantik der Programmiersprache Java eingehen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Software Engineering Klassendiagramme Einführung

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

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Modularisierung. Modularisierung. 1 von 21

Modularisierung. Modularisierung. 1 von 21 1 von 21 Was geht in Richtung? Das Ziel Es sollen einfach wiederverwendbare Bausteine (Module) ermöglicht werden. Meist mit Unterteilung Schnittstelle und Implementierung. Die Granularität liegt über der

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 19. 25. Februar 2003 Donnerstag Inhaltsübersicht Java pur die Java-Welt außerhalb von BlueJ Adressierung von Klassen und Paketen Java Applications Klassenmethoden und -variablen Ein- und

Mehr

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Java Einführung Packages

Java Einführung Packages Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

4. Objektorientierte Programmierung

4. Objektorientierte Programmierung 4. Objektorientierte Programmierung In Abschnitt 3 ging es um fundamentale Basiskonzepte von Java, wie es sie in jeder anderen gängigen Programmiersprache so oder so ähnlich auch gibt. In Abschnitt 4 nun

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2011 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Klassen in Java. Klassen

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

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Assoziationen. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 05: Assoziationen und Pakete. Inhalt. Assoziationen.

Assoziationen. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 05: Assoziationen und Pakete. Inhalt. Assoziationen. Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Beispiel: Ein Mitarbeiter in einem Unternehmen gehört zu einer Abteilung. Mitarbeiter Vorlesung 05: und Pakete persnr : Integer name

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Kapitel 6. Vererbung

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

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

Entwicklungsrichtlinien. 6. Mai 2015

Entwicklungsrichtlinien. 6. Mai 2015 Entwicklungsrichtlinien 6. Mai 2015 Überblick Warum gibt es Entwicklungsrichtlinien? Welche Entwicklungsrichtlinien gibt es? Standards für Anforderungsspezifikationen Namensgebung Programmierrichtlinien

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Kapitel 6. Vererbung

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

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren

Mehr

Kapitel 6. Vererbung

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

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Vorkurs C++ Programmierung

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

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A. »Programmieren«, WS 006/007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Objektorientierte Programmierung mit Python Objekt und Klassen

Objektorientierte Programmierung mit Python Objekt und Klassen Objektorientierte Programmierung mit Python Objekt und Klassen hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Eine Aufgabe wird

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Übungen Informatik I. JAVA - Einführung. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 Folie 1

Übungen Informatik I. JAVA - Einführung. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 Folie 1 Übungen Informatik I JAVA - Einführung Übungen Informatik 1 Folie 1 Warum Java? Java ist derzeit die Programmiersprache für das Internet. Java ist ein Programmierkonzept der Zukunft. Objekt-orientierte

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Übersicht. Informatik 2 Teil 1 Objektorientiertes Programmieren und Grundlagen von Java

Übersicht. Informatik 2 Teil 1 Objektorientiertes Programmieren und Grundlagen von Java Übersicht 1.1 Warum objektorientierte Programmierung (OOP) 1.2 OOP-Grundlagen 1.3 Die Programmiersprache Java 1.4 Die Plattformunabhängigkeit von Java 1.5 Vergleich von Java und C 1.6 Primitive Datentypen

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Teil 6: Klassenkonzept. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 6: Klassenkonzept. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 6: Klassenkonzept Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 6 Klassenkonzept...3 6.1 Was ist eine Klasse?... 3 6.2

Mehr

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr