Einstieg in die Informatik mit Java

Größe: px
Ab Seite anzeigen:

Download "Einstieg in die Informatik mit Java"

Transkript

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

2 Gliederung 2 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

3 Gliederung 3 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

4 4 / 39 Überblick: Klassen und Objektorientierung In diesem Kapitel werden Klassen und objektorientierte Programmierung in Java beschrieben. Objektorientierte Programmierung Vorteile, Paradigmen Klassen Darstellung in Java, Klassen- und Instanzkomponenten

5 Gliederung 5 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

6 Philosophie der Objektorientierten Programmierung Paradigmen (1) Generalisierung: Gemeinsame Strukturen von Objekten werden in Superklassen zusammengefasst. (2) Vererbung: Eigenschaften einer Superklasse werden automatisch an eine Subklasse vererbt. (3) Daten-Kapselung: Variablen und Methoden werden in einem Objekt zusammengefasst. Die interne Struktur wird vor dem Benutzer versteckt, der Zugriff erfolgt nur über genau definierte Schnittstellen. (4) Polymorphie: Eine Methode kann in verschiedenen Subklassen individuell angepasst werden. Vorteile Es entsteht weniger Quelltext. Es bestehen weniger Fehlermöglichkeiten. Das Programm erhält eine bessere Strukturierung. Der Quelltext ist besser wartbar. 6 / 39

7 Die Philosophie 7 / 39 Beispiel Superklasse Lebewesen Subklasse Subklasse Tiere Pflanzen......

8 Gliederung 8 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

9 9 / 39 Definition von Klassen Syntax Modifizierer class Bezeichner {Elementliste Die Elementliste besteht u.a. aus Attributen (d. h. Instanzvariablen), Instanzmethoden, Konstruktoren, sowie Klassenvariablen und Klassenmethoden. Zweck der Instanzmethoden: Bearbeitung der Attribute, Klassen werden zu aktiven Objekten, Kommunikation mit anderen Klassen.

10 Gliederung 10 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

11 Datenkapselung 11 / 39 Mögliche Modifizierer private nichts protected public Element kann nur von der eigenen Klasse verwendet werden. Standard-Rechte, auch friendly oder package private genannt. Element kann in der Klasse selber sowie in allen Klassen des gleichen Pakets (i.a. = Verzeichnis) verwendet werden. (wird später behandelt) Element kann von jeder Klasse verwendet werden. Datenelemente werden aus Gründen der Datenkapselung oft mit dem Modifizierer private versehen. Der Zugriff auf die Komponente name wird dann oft realisiert mit public-methoden getname() bzw. setname(...) Der Vorteil dabei ist: hierbei können ggf. Tests und Kontrollen durchgeführt werden.

12 12 / 39 Zugriffsrechte bei der Klasse Die Klasse selber darf nur Standardrechte oder public Rechte besitzen. In einer Datei dürfen mehrere Klassen definiert werden, jedoch darf nur eine davon public Rechte besitzen. Diese Klasse muss den gleichen Namen wie die Datei tragen.

13 Beispiel: Point 13 / 39 Beispiel zur Klassendefinition und Datenkapselung Nachfolgend wird der neue Datentyp Point definiert: class Point { private double x, y ; / / geschützt vor unberecht. Z u g r i f f public double getx ( ) { return x ; public double gety ( ) { return y ; void move ( double dx, double dy ) { x += dx ; y += dy ; public s t a t i c void main ( S t r i n g [ ] args ) { Point p = new Point ( ) ; / / b i l d e t Instanz der Klasse / / Point durch A u f r u f des / / Standardkonstruktors

14 Gliederung 14 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

15 Instanzen 15 / 39 Achtung Unterscheidung zwischen Klasse und Instanz! Klasse Instanz Datentyp, es wird noch kein Speicher für Komponenten reserviert. Variable des Datentyps, auch Objekt genannt es wird für Komponenten Speicher reserviert ( Instanzvariablen, Instanz Methoden). Von einer Klasse können viele Instanzen (bzw. Objekte) gebildet werden. Die Instanzen sind dann zwar vom selben Datentyp, belegen aber nicht die selben Speicherbereiche. Dadurch sind sie voneinander unabhängig handhabbar. Eine Ausnahme bilden Komponenten mit dem Modifizierer static. Diese werden für die gesamte Klasse nur einmal angelegt, unabhängig davon, ob keine, eine oder mehrere Instanz(en) der Klasse gebildet wurden ( Klassenvariablen, Klassenmethoden).

16 Gliederung 16 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

17 17 / 39 Zugriff auf Elemente Erinnerung: Syntax Modifizierer class Bezeichner {Elementliste Elementvariablen und Elementmethoden werden auch unter dem Begriff Komponenten zusammengefasst. Innerhalb der Klasse ist der Zugriff auf alle ihre Komponenten erlaubt. Klassenkomponenten (Klassenmethoden, Klassenvariablen) sind mit dem Modifizierer static versehen Sie dürfen andere Klassenkomponenten verwenden einfach durch Angabe des entsprechenden Bezeichners. Klassenkomponenten dürfen auf Instanzkomponenten nur zugreifen, wenn eine konkrete Instanz genannt wird: Instanzname.Bezeichner

18 18 / 39 Zugriff auf Elemente: Instanzkomponenten Instanzkomponenten (Instanzmethoden, Instanzvariablen) werden ohne den Modifizierer static definiert. Sie dürfen andere Instanzkomponenten der gleichen Instanz sowie Klassenkomponenten verwenden einfach durch Angabe des entsprechenden Bezeichners. Instanzkomponenten dürfen auch auf Instanzkomponenten anderer Instanzen zugreifen, wenn diese konkrete Instanz genannt wird: Instanzname.Bezeichner

19 Zugriff auf Elemente: Beispiel 19 / 39 Beispiel zum Zugriff auf Instanzkomponenten class Point { double x, y ; double abstand ( Point p ) { double dx = p. x x ; / / x = x Koordinate der a k t u e l l e n Instanz / / p. x = x Koordinate der Instanz p double dy = p. y y ; / / analog return Math. s q r t ( dx dx + dy dy ) ;

20 20 / 39 Zugriff auf Elemente, this Wird der Bezeichner durch eine gleichnamige lokale Variable verdeckt, kann mit this.bezeichner auf die Komponenten der gerade aktiven Instanz zugegriffen werden. this ist dabei eine Referenz auf die momentan betrachtete Instanz. Diese wird beim ersten Aufruf einer Instanzmethode vor dem Punkt angegeben und dann an weitere darin aufgerufene Instanzmethoden weitergereicht: Instanz.Instanzmethode () Achtung this ist nur in Instanzmethoden definiert! In Klassenmethoden ist es unzulässig, da es dort keine Referenz auf die momentan betrachtete Instanz gibt.

21 Zugriff auf Elemente 21 / 39 Beispiel zu this public class Point2 { private double x, y ; / / I n s t a n z v a r i a b l e n public double getx ( ) { return x ; public double gety ( ) { return y ; void move ( double x, double y ){ this. x = x ; / / Ueberschreiben der I n s t. var. this. y = y ; / / mit den gleichnamigen Var. x, y public s t a t i c void main ( S t r i n g s ){ Point2 p2 = new Point2 ( ) ; / / Instanz erzeugen p2. move (100, 200); / / Punkt p2 verschieben

22 Zugriff auf Elemente 22 / 39 Außerhalb der Klasse, d.h. in einer anderen Klasse, ist der Zugriff nur auf sichtbare Komponenten erlaubt. Diese sind folglich mit öffentlichen Zugriffsrechten bzw. für den Fall, dass sich die Klasse im gleichen Verzeichnis befindet, mit Standardrechten ausgestattet. Syntax Klassenname.Komponente Instanzname.Komponente auch möglich: Instanzname.Komponente Beispiel (erweiterte Klasse Point2) bei Klassenkomponenten bei Instanzkomponenten bei Klassenkomponenten... / / im Hauptprogramm : System. out. p r i n t l n ( x Koodinate von p + p. getx ( ) ) ; System. out. p r i n t l n ( p. x ) ; / / s y n t a k t i s c h r i c h t i g, / / aber Z u g r i f f verboten!

23 Gliederung 23 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

24 24 / 39 Konstruktoren Beim letzten Beispiel gab es die Möglichkeit, Werte für die Variablen x und y über die Methode move vorzugeben. Beispiel... / / im Hauptprogramm : Point2 p2 = new Point2 ( ) ; / / erzeuge Instanz p2. move(1000, 1000); / / belegt x, y mit Achtung Nachteil: Die Methode move muss für jedes neue Objekt aufgerufen werden! Besser ist die Verwendung eines Konstruktors.

25 Konstruktoren Konstruktoren erlauben es sehr komfortabel Instanzvariablen schon bei der Erzeugung einer Instanz/eines Objektes zu initialisieren. Ein Konstruktor ist eine spezielle Methode ohne Ergebnistyp (auch nicht void), die den gleichen Namen wie die Klasse trägt. Konstruktoren können überladen werden, d.h. es dürfen mehrere Konstuktoren existieren. Konstruktoren dürfen nicht static sein und keine return-anweisung enthalten. Ein Konstruktor ohne Argumente wird Standardkonstruktor genannt. Werden keine Konstruktoren definiert, so erzeugt der Kompiler automatisch den Standardkonstruktor, andernfalls nicht. Ein Konstruktor kann einen anderen Konstruktor mit der Notation this(...) aufrufen. Dieser Aufruf ist allerdings nur als erste Anweisung eines Konstruktors erlaubt. 25 / 39

26 26 / 39 Konstruktoren: Aufruf Aufruf von Konstruktoren: Ein Konstruktor wird mit dem Zusatz new ähnlich wie eine Methode aufgerufen. Als Ergebnis liefert er eine Referenz auf die neue Instanz. Diese Referenz kann in einer Referenzvariablen vom passenden Typ gespeichert werden. new beschafft den benötigten Speicher für die Instanzvariablen, diese werden initialisiert, dann werden die angegebenen Anweisungen im Konstruktor ausgeführt. Syntax Konstruktoraufruf new Klassenname (Wert,...)

27 Beispiel zur Verwendung von Konstruktoren 27 / 39 Beispiel, Ergänzung zu Point public Point ( double x, double y ) { / / 1. Konstruktor this. x = x ; this. y = y ; public Point ( ) { / / 2. Konstruktor = Standardkonstruktor x = 0; / / a l t e r n a t i v ueber A u f r u f y = 0; / / des 1. Konstruktors : t h i s ( 0, 0 ) ; public Point ( double xy ) { / / 3. Konstruktor this ( xy, xy ) ; / / A u f r u f des 1. Konstruktors / / a l t e r n a t i v : x = y = xy ; / / im Hauptprogramm : public s t a t i c void main ( S t r i n g [ ] args ) { Point q = new Point ( 1, 2 ) ; / / A u f r u f des 1. Konstr. Point r = new Point ( ) ; / / A u f r u f des 2. Konstr. Point s = new Point ( 5 ) ; / / A u f r u f des 3. Konstr.

28 class Fehler { i n t x, y ; Fehler ( i n t x ) { / / K1 x = this. x ; / / Unsinn! Fehler ( i n t x, i n t y ) { / / K2 this. y = y ; / / Z e i l e 1 this ( x ) ; / / Z e i l e 2 r u f t K1, h i e r verboten! / / Z e i l e n 1 und 2 v e r t a u s c h t : waere okay Fehler ( i n t x, boolean diag ) { / / K3 i f ( diag ) this ( x, x ) ; / / r u f t K2, h i e r verboten! else this ( x ) ; / / r u f t K1, h i e r verboten! / / t h i s (... ) i n bedingter Anweisung etc. n i c h t moeglich public s t a t i c void main ( S t r i n g [ ] args ) { Fehler f = new Fehler ( ) ; / / Standardkonstruktor / / d i e s e r Konstruktor e x i s t i e r t n i c h t! 28 / 39 Beispiel: Fehlerhafte Konstruktoren Beispiel zu fehlerhaften Konstruktoren

29 Gliederung 29 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

30 Garbage Collection 30 / 39 In Java gibt es kein Gegenstück zum Konstruktor etwa einen Destruktor wie in manchen anderen Programmiersprachen. Der Speicher von nicht mehr referenzierten Objekten wird früher oder später automatisch freigegeben, im schlimmsten Fall erst am Programmende Garbage collection. Expliziter Aufruf der Garbage Collection System.gc(); Beispiel S t r i n g s = blub ;... s = null ; / / Ref. auf blub geht verloren, / / sofern keine weitere Referenz ex.

31 31 / 39 Garbage Collection Beispiel class Demo {... Demo d = new Demo ( ) ; / / Instanz der Klasse Demo... d = new Demo ( ) ; / / neue Instanz, a l t e geht v e r l o r e n Achtung Selbst beim expliziten Aufruf des Garbage collectors muss der Speicher nicht komplett freigegeben werden!

32 finalize 32 / 39 Sind weitere Aufräumarbeiten wie das Zählen lebender Objekte, Abbau der Internetverbindung usw. nötig, dann kann man eine Methode finalize() definieren. Diese wird aufgerufen, bevor ein Objekt vom Garbage collector freigegeben wurde. Syntax protected void f i n a l i z e ( ) throws Throwable {...

33 33 / 39 Lebenszyklen von Klassen und Instanzen (1) Ein Klasse wird geladen (z. B. von der Festplatte in den Hauptspeicher), sobald sie benötigt wird und wieder entfernt, sobald sie nicht mehr benötigt wird. (2) Instanzen werden i. allg. mit new erzeugt. Sobald keine Referenz mehr auf die Instanz existiert, kann sie vom Java System über die automatische Garbage collection wieder entfernt werden. Dies kann allerdings später oder auch gar nicht geschehen (siehe oben).

34 Gliederung 34 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

35 35 / 39 Variable Argumentliste Syntax Typ... Bezeichner Wird in der Methode als Feld vom angegebenen Typ interpretiert class F l e x i b e l { void ausgeben ( i n t... x ) { for ( i n t i =0; i <x. l e n g t h ; i ++) System. out. p r i n t l n ( x [ i ] ) ;... F l e x i b e l f = new F l e x i b e l ( ) ; f. ausgeben ( 1, 2, 3 ) ; / / d r e i einfache i n t / / 1 2 3

36 Gliederung 36 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

37 37 / 39 Laufanweisung für Felder Syntax for (Komponententyp Bezeichner : Feldname )... Der Bezeichner durchläuft alle Feldelelemente. double [ ] x = {1.5, 2.3, 3. 7 ; / / bekannte Variante : for ( i n t i =0; i <x. l e n gth ; i ++) System. out. p r i n t l n ( x [ i ] ) ; / / neue Variante : for ( double x i : x ) System. out. p r i n t l n ( x i ) ; In dieser Variante: kein Zugriff auf Index i möglich bzw. nötig.

38 Gliederung 38 / 39 1 Überblick: Klassen und Objektorientierung 2 Philosophie der Objektorientierten Programmierung 3 Definition von Klassen 4 Datenkapselung 5 Instanzen 6 Zugriff auf Elemente 7 Konstruktoren 8 Speicherverwaltung 9 Variable Argumentliste 10 Laufanweisung für Felder 11 Methode tostring()

39 class Punkt { double x, y ; public S t r i n g t o S t r i n g ( ) { return x +, + y ;... Punkt p = new Punkt ( ) ; System. out. p r i n t l n ( p ) ; / / r u f t t o S t r i n g ( ) auf / / Ausgabe : 0, 0 39 / 39 Methode tostring() Syntax public String tostring() { return...; // Attribute als Text tostring() wird automatisch aufgerufen, wenn eine String-Darstellung eines Objekts gebraucht wird z.b. bei der Ausgabe.

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

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

Einstieg in die Informatik mit Java

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

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 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

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

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 28 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick: Variablenarten 2 Lokale Variablen 3 Lokale Variablen

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen

Mehr

Einstieg in die Informatik mit Java

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

Mehr

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition

Mehr

Klassen als Datenstrukturen

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

Mehr

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

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

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

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

Implementieren von Klassen

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

Mehr

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

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

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

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

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Tag 7 Repetitorium Informatik (Java)

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

Mehr

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 15 Einstieg in die Informatik mit Java Zeichenketten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick: Zeichenketten 2 Zeichenketten 3 Erzeugen von Zeichenketten

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

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 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

Prinzipien der objektorientierten Programmierung (OOP)

Prinzipien der objektorientierten Programmierung (OOP) Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm

Mehr

Informatik II. Woche 13, Giuseppe Accaputo

Informatik II. Woche 13, Giuseppe Accaputo Informatik II Woche 13, 30.03.2017 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Nachbesprechung Self-Assessment Test Nachbesprechung Übung 5 Java: Objektorientierte Programmierung Klassen und Objekte

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Zeichenketten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für

Mehr

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

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

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Philipp Güttler Objektorientierung und komplexe Datentypen

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

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Softwareentwicklung I (IB) Objekte. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Softwareentwicklung I (IB) Objekte. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Softwareentwicklung I (IB) Objekte Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 20:09 Inhaltsverzeichnis Neue Typen durch Klassen............................. 2

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

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

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

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

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

Tag 8 Repetitorium Informatik (Java)

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

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

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine

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

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor: 4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende

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

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

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08 Betreutes Arbeiten Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) 375 Wiederholung Klasse: class Klassenname { konzeptuelle Einheit der Modellierungsdomäne kapselt Daten und Operationen

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

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 492

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 492 Überblick 6. Grundlagen der objektorientierten Programmierung 6.1 Abstrakte Datentypen: von Structures zu Klassen 6.2 Das objektorientierte Paradigma 6.3 Peer Kröger (LMU München) Einführung in die Programmierung

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

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

Mehr

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

3 Klassen, Attribute, Methoden

3 Klassen, Attribute, Methoden 3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

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

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

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

C++ Klassen weitere Funktionen

C++ Klassen weitere Funktionen C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 9. Dezember 2015 Wiederholung Referenzdatentypen reference [0] M datatype

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung 2 Einordnung in den Softwareentwicklungsprozess Softwareentwicklung mit JAVA Planung Entwurf Programmierung Test/Evaluation/Pflege

Mehr

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung

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

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

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

2. Vererbung und Kapselung

2. Vererbung und Kapselung 2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen

Mehr

Gliederung der Folien

Gliederung der Folien 1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung

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

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

III. Objektorientierte Programmierung. Aufruf einer Methode. Definition einer Methode. Bezug zur aufrufenden Instanz. Instanzen einer Klasse

III. Objektorientierte Programmierung. Aufruf einer Methode. Definition einer Methode. Bezug zur aufrufenden Instanz. Instanzen einer Klasse Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 12 Ekkart Kindler III. Objektorientierte Programmierung Überblick Klassen und Methoden Vererbung Zugriffsrechte Definition einer Methode

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

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Bis jetzt kennen wir (fast) nur primitive Datentypen. Diese entsprechen weitestgehend der Hardware des Rechners (z.b. besitzt ein Rechner Hardware um zwei floats zu addieren).

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