Folienpaket 8 Themenschwerpunkte: Statisch, Sichtbarkeit, Variablentypen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Größe: px
Ab Seite anzeigen:

Download "Folienpaket 8 Themenschwerpunkte: Statisch, Sichtbarkeit, Variablentypen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4"

Transkript

1 Folienpaket 8 Themenschwerpunkte: Statisch, Sichtbarkeit, Variablentypen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

2 Objektorientierte Programmierung Objektorientierte Programmierung hat sich in den 80ern etabliert, als komplexere Programme entstanden und grafische Interaktion mit dem Benutzer notwendig wurde. Heutige Programmbestandteile sind ohne OOP kaum denkbar, Interaktionselemente wie Fenster oder Buttons werden beispielsweise durch Objekte kontrolliert. Es gibt Ausnahmen: OOP ist nicht effizient, beispielsweise wird oft eine klassische tabellarische Datenbank mit einem benutzerfreundlichen OOP-Interface kombiniert (z.b. DB-Automaten) /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

3 Objektorientierte Programmierung Es gibt zahlreiche OOP-Varianten in verschiedenen Programmiersprachen: Smalltalk: Strenge Objektorientierung, keine elementaren Typen, sehr ineffizient und eher für Planung als für Einsatz konzipiert. C++: Strenge Typisierung, Templates, Zeiger, auf Hardwarenähe/Effizienz bedacht. Java: Pragmatische OOP, Referenzen, typisiert, Syntax von C++ vereinfacht. JavaScript: Prototypische OOP, duck-typing, keine echten Klassen. Pascal/Delphi: Klassische prozedurale Sprache mit OOP-Elementen. Java ist ein Mittelweg: Alles kann objektorientiert angelegt werden, sobald Effizienz gefordert ist kann man aber auch klassisch mit elementaren Typen programmieren /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

4 Variablen in Java Heute betrachten wir Variablen im Detail: die Vorlage, aus der sie erzeugt werden (der Datentyp bzw. die Klasse) die Situation, in der sie erzeugt wird (in einem Objekt, im Code, als Parameter) der Bereich wo sie sichtbar ist (im Objekt, im Codeblock, überall) /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

5 Datentypen und Werte Zur Erinnerung: Jede Variable hat in Java einen Datentyp: ein elementarer Typ: int, double, boolean, usw. ein Feldtyp: int[], double[], usw. eine Klasse (separat deklariert in einer class-datei) Davon unterscheiden wir den Wert, den eine Variable enthält: bei elementaren Typen ist das eine Zahl oder Zeichen bei Feldern eine Referenz auf das Feld bei Klassen eine Referenz auf das Objekt /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

6 Datentypen und Werte Beachte den Unterschied in der Definition: Eine Klasse ist ein eigener Datentyp. Sie legt die Attribute und Methoden fest. Ein Objekt ist ein konkreter Bereich im Speicher, der Speicherzellen für Attribute und Methoden enthält. Beim Erstellen eines Objekts muss man die Klasse für das Objekt angeben. Raumvektor u, v; u = new Raumvektor(); v = new Raumvektor(); u.x = 1; v.x = 2; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

7 Wozu Statisch? Objekt-Attribute und -Methoden gehören ihrem Objekt: Alles in Java ist an ein Objekt gebunden wenn man nicht statisch modifiziert Jedes Objekt im Speicher hat die Attribute bzw. Methoden in seinem Speicherbereich Bei jedem new-befehl werden die Attribute und Methoden neu in den Speicher geschrieben /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

8 Wozu Statisch? Statische Attribute und Methoden werden mit dem Modifikator static angelegt, existieren sofort nach Start des Programms, existieren unabhängig davon, ob und wieviele Objekte es gibt, stehen in einem globalen Bereich, nicht im Objekt selbst, werden nur einmal im Speicher angelegt, alle Objekte teilen sich das Attribut bzw. die Methode. Sprechweise: Gewöhnliche Attribute/Methoden sind an ein Objekt gebunden, statische Attribute/Methoden sind dagegen an die Klasse gebunden /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

9 Beispiel: Objekt-Attribute Raumvektor.java class Raumvektor { double x; double y; double z; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

10 Beispiel: Objekt-Attribute Raumvektor.java class Raumvektor { double x; double y; double z; MeinProgramm.java class MeinProgramm { public static void main(string[] args) { Raumvektor v = new Raumvektor(); v.x = -1; Raumvektor w = new Raumvektor(); System.out.println("x ist " + w.x); x ist 0 x = 5; FEHLER: x gibt es nicht, nur v.x und w.x /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

11 Beispiel: Statische Attribute Raumvektor.java class Raumvektor { static double x; double y; double z; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

12 Beispiel: Statische Attribute Raumvektor.java class Raumvektor { static double x; double y; double z; MeinProgramm.java class MeinProgramm { public static void main(string[] args) { Raumvektor v = new Raumvektor(); v.x = -1 Raumvektor w = new Raumvektor(); System.out.println("x ist " + w.x); x ist -1 Raumvektor.x = -2; // Kein Objekt nötig, aber Klasse wird angegeben /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

13 Beispiel: Objekt-Methoden Raumvektor.java class Raumvektor { double x; double y; double z; void print() { System.out.println(x + "," + y + "," + z); MeinProgramm.java class MeinProgramm { public static void main(string[] args) { Raumvektor v = new Raumvektor(); v.x = 1; Raumvektor w = new Raumvektor(); w.y = 2; v.print(); 1,0,0 w.print(); 0,2, /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

14 Beispiel: Statische Methoden Raumvektor.java class Raumvektor { double x; double y; double z; static void print() { System.out.println(x + "," + y + "," + z); FEHLER: x,y,z unbekannt! Statische Methoden haben nur Zugriff auf statische Attribute und andere statische Methoden der Klasse Lösung für Nicht-Informatiker: Objekt beim Aufruf mitgeben /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

15 Beispiel: Statische Methoden Raumvektor.java class Raumvektor { double x; double y; double z; static void print(raumvektor u) { System.out.println(u.x + "," + u.y + "," + u.z); MeinProgramm.java class MeinProgramm { public static void main(string[] args) { Raumvektor v = new Raumvektor(); v.x = 1; Raumvektor.print(v); 1,0, /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

16 Statisch und dynamisch Objekt-Methoden verändern Eigenschaften des Objekts, geben den Inhalt des Objekts nach außen weiter, realisieren den Zweck des Objekts, greifen auf Attribute ohne den Referenzpunkt zu (von innen). Statische Methoden sind nicht mit dem Inhalt/Zweck des Objekts verbunden, bekommen ggf. Objekte als Parameter gegeben, greifen auf deren Attribute mit dem Referenzpunkt zu (von außen) /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

17 Beispiele In der Klasse String gibt es beispielsweise folgende Deklarationen: public char charat(int k); Hängt direkt vom Objekt ab public boolean equals(string s); Hängt vom Objekt und von s ab In der Klasse Math gibt es beispielsweise folgende Deklarationen: public static double sin(double x); Hier ist kein Objekt beteiligt: statisch public static final double PI (Attribut) Muss überall die gleiche Konstante sein: statisch Ist eine unveränderliche Zahl: final Styleguide: Konstanten (final static) durchgehend groß schreiben /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

18 Aufgabe Schreiben Sie eine Klasse Mass, die einen bewegten Massekörper in der Physik darstellen soll mit folgenden Eigenschaften: der Massekörper hat eine Masse m, eine Geschwindigkeit v, die kinetische Energie E = 1 2 mv 2, die Fallbeschleunigung g = 9.81 auf der Erde, eine Methode, die für eine Sekunde eine Kraft F ansetzt, eine Methode, die einen Körper der Masse m = 1 mit Geschwindigkeit v = 0 erzeugt. Schreiben Sie die Signaturen und wählen Sie die passenden Modifikatoren dazu. Lassen Sie den Rumpfcode weg. Styleguide: Englische Variablen- und Methodennamen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

19 Lösung Mass.java class Mass { double m; double v; static final double EARTHACCELERATION = 9.81; public double energy() { return m * v * v / 2.0; public static Mass createmass() { public void applyforce(double force) { /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

20 Verwendung von Variablen Der Lebenslauf einer Variablen sieht immer so aus: die Variable wird deklariert, die Variable erhält einen Wert oder eine Referenz, mit der Variable wird gearbeitet, die Variable wird aus dem Speicher entfernt. public static void main(string[] args) { int a; a = 4; a = a + 1; System.out.println(a); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

21 Verwendung von Variablen Der Lebenslauf einer Variablen sieht immer so aus: die Variable wird deklariert die Variable erhält einen Wert oder eine Referenz mit der Variable wird gearbeitet die Variable wird aus dem Speicher entfernt public static void main(string[] args) { int a; a = 4; a = a + 1; System.out.println(a); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

22 Verwendung von Variablen Der Lebenslauf einer Variablen sieht immer so aus: die Variable wird deklariert die Variable erhält einen Wert oder eine Referenz mit der Variable wird gearbeitet die Variable wird aus dem Speicher entfernt public static void main(string[] args) { int a; a = 4; a = a + 1; System.out.println(a); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

23 Verwendung von Variablen Der Lebenslauf einer Variablen sieht immer so aus: die Variable wird deklariert die Variable erhält einen Wert oder eine Referenz mit der Variable wird gearbeitet die Variable wird aus dem Speicher entfernt public static void main(string[] args) { int a; a = 4; a = a + 1; System.out.println(a); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

24 Verwendung von Variablen Der Lebenslauf einer Variablen sieht immer so aus: die Variable wird deklariert die Variable erhält einen Wert oder eine Referenz mit der Variable wird gearbeitet die Variable wird aus dem Speicher entfernt public static void main(string[] args) { int a; a = 4; a = a + 1; System.out.println(a); (Programmende) /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

25 Verwendung von Variablen Wir verwenden in Java Variablen in verschiedenen Situationen: als lokale Variablen innerhalb einer Methode oder eines Codeblocks als Parameter in der Signatur einer Methode als Rückgabewerte werden in der Signatur deklariert als Attribute werden in einer Klasse deklariert und in Objekten benutzt als Attribute (statisch) werden in einer Klasse deklariert und geteilt /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

26 Verwendung von Variablen Lokale Variablen werden innerhalb eines Körpers oder Codeblocks deklariert (oder als Zähler in einem for-block), innerhalb des Codeblocks werden Werte eingesetzt, sie sind nur innerhalb des Codeblocks sichtbar, nach Ende des Codeblocks werden sie gelöscht. public static void main(string[] args) { int a; a = 4; a = a + 1; System.out.println(a); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

27 Verwendung von Variablen Parameter werden in der Signatur einer Methode deklariert, sie werden vom Aufrufer der Methode gefüllt, das passiert bevor die Methode überhaupt startet, sie sind innerhalb der Methode sichtbar und nur dort, nach Ende der Methode werden sie gelöscht. public double summe(double a, double b) { return a + b; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

28 Verwendung von Variablen Rückgabewert wird in der Signatur einer Methode deklariert, wird innerhalb der Methode mit return erzeugt, der Aufrufer muss den Wert speichern, sonst ist er weg. public double summe(double a, double b) { return a + b; public static void main(string[] args) { double s = summe(3.2, 1.4); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

29 Verwendung von Variablen Objekt-Attribute werden in einer Klasse deklariert und bei jedem mit new erzeugten Objekt separat angelegt, und von Konstruktoren mit Startwerten versorgt. Jedes Objekt hat seine eigenen Attribute im Speicher, die Attribute eines Objekts sind normalerweise sichtbar, nur im Studium nicht weil der Styleguide private erzwingt. Zugriff über Objektname und Referenzpunkt, sie werden gelöscht, wenn das Objekt gelöscht wird. public static void main(string[] args) { Raumvektor v = new Raumvektor(); v.x = 5; Dagegen ist v eine lokale Variable (Referenz) im Codeblock /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

30 Verwendung von Variablen Statische Attribute werden auch in einer Klasse deklariert, sie werden beim Start des Programms einmal erzeugt, sie sind unabhängig von den Objekten im Speicher, auch diese Attribute sind normalerweise sichtbar. Zugriff über Klassenname und Referenzpunkt, sie werden niemals gelöscht (bzw. bis das Betriebssystem das Programm aus dem Speicher wirft). public static void main(string[] args) { double p = Math.PI; Wir brauchen hier kein Objekt erzeugen, denn PI existiert statisch. Hier ist Math ein Klassenname, aber es gibt kein Objekt /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

31 Aufgabe Was passiert bei diesem Programm im Speicher? class Aufgabe { double a = 1; static int j = 2; public double test(byte b) { double y = 0; y = a; y = y + b * j; return y; public static void main(string[] s) { Aufgabe A = new Aufgabe(); double w = A.test(-3); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

32 Private Attribute/Methoden Attribute und Methoden sind normalerweise überall sichtbar. Mit dem Modifikator private kann man sie nach außen verstecken: Private Eigenschaften sind nur innerhalb der selben Klasse zugänglich. Genauer: Zugänglich innnerhalb aller Objekte dieser Klasse. Statische Attribute/Methoden dürfen nicht privat sein. Beispiel: class Zaehlen { private int anzahl = 0; public void zaehlen() { anzahl = anzahl + 1; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

33 Private Attribute/Methoden Vorsicht: Grenze bei private ist nicht das Objekt, sondern die Klasse: public class Test { private double x; public void probieren() { Test obj = new Test(); obj.x = 34; Beschreiben von obj.x ist erlaubt, da der Zugriff von einem Objekt der gleichen Klasse Test aus geschieht. Objekte der gleichen Klasse vertrauen sich gegenseitig /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

34 Sichtbarkeitsbereiche Genau genommen haben Attribute und Methoden in Java vier mögliche Sichtbarkeitsbereiche: public (öffentlich), Sichtbarkeit für jeden der die Klasse hat. Ohne Modifikator (Standard), Sichtbarkeit im gleichen package. protected (geschützt), Sichtbarkeit in Klasse und ihren Ableitungen. private (privat), Sichtbarkeit nur in der eigenen Klasse. Private und geschützte Attribute dienen der Konsistenz des Objekts. Sie werden typischerweise über set/get-methoden manipuliert, diese stellen sicher, dass das Objekt immer konsistent ist /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

35 Konsistenzsicherung Der Begriff Konsistenz bedeutet: In den Attributen stehen zu jedem Zeitpunkt Werte, die einen sinnvollen Objektzustand darstellen bzw. mit denen die Methoden arbeiten können. Ursachen für Inkonsistenz: Herumschreiben in Objekten von Außen, nicht Absicht sondern meistens Programmierfehler, fehlerhafte Initialisierung etc. Inkonsistenzen führen zu Fehlern im Programm und sind schwer zu finden. Abhilfe: Kapselung durch get/set-methoden und Konstruktoren /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

36 Beispiel für set/get-formalismus class RationalNumber { private int n, d; // numerator and denominator public RationalNumber() { n = 0; d = 1; public void setn(int n) { this.n = n; // set method for denominator public void setd(int d) { if (d!= 0) { this.d = d; else { System.out.println("Forget it"); public int getn() { return n; public int getd() { return d; public double evaluate() { return ((double)n / (double)d); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

37 Parameter übergeben Beachten Sie bei der Übergabe von Parametern: Parameter werden als Wert-Kopie übergeben, Änderungen des Parameters betreffen die übergebene Variable nicht, ABER wenn der Parameter eine Referenz ist, so wird die Referenz und nicht das Objekt/Feld kopiert. Konkret bedeutet das: wenn Sie elementare Variablen als Parameter einsetzen, werden diese nicht durch den Methodenaufruf verändert, wenn Sie Objekte oder Felder über eine Referenz weitergeben, kann es sein, dass die Methode über die Referenz auf die Objekte zugreift und diese verändert. Das ist meist auch gewünscht /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

38 Parameter übergeben Beispiel elementare Variable: public static void methode(int k) { k = 100; public static void main(string[] args) { int a = 0; methode(a); // Wert übergeben System.out.println(a); Dieses Programm ergibt die Ausgabe 0, denn die Methode schreibt in einen Parameter k und der ist nur eine Kopie der Variablen a. Das k wird nach Ende der Methode gelöscht und die Variable a wird durch die Methode nicht angerührt /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

39 Parameter übergeben Beispiel Referenz auf Feld: public static void methode(int[] K) { K[0] = 100; public static void main(string[] args) { int[] A = new int[10]; A[0] = 0; methode(a); // Referenz übergeben System.out.println(A[0]); Dieses Programm ergibt die Ausgabe 100. Zwar ist K eine Kopie von A, aber es ist eine Referenz. Beide Referenzen zeigen auf das gleiche Feld, das durch den Befehl in der Methode verändert wird. Die Änderung ist dann auch nach Abschluss der Methode wirksam /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

40 Parameter übergeben Beispiel Referenz auf Objekt: public static void methode(student s) { s.geburtstag(); public static void main(string[] args) { Student x = new Student(); x.alter = 20; methode(x); // Referenz übergeben System.out.println(x.alter); Dieses Programm ergibt die Ausgabe 21. Die Methode geburtstag() ist dynamisch, sie gehört zu dem Objekt, auf das die Referenz s zeigt. Da die Referenz eine Kopie von x ist, zeigen beide Referenzen auf das gleiche Objekt /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

41 Das eigene Objekt Befindet man sich innerhalb eines Objekts, z.b. im Körper einer dynamischen Methode, so kann man dieses Objekt mit this referenzieren. Typische Anwendung: Namensgleichheit von Variablen in set-methoden: class Vektor { private double x, y; public void setxy(double x, double y) { this.x = x; this.y = y; Styleguide: Gleiche Namen bei set-methoden und this-referenz vor eigenen Attributen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

42 Konstruktoren Zur Erinnerung Ein Konstruktor ist eine Methode ohne Rückgabetyp. Der Name des Konstruktors ist der Name der Klasse: class Vektor { double x, y; public Vektor(double x, double y) { this.x = x; this.y = y; Styleguide: Konstruktor-Parameter bekommen gleichen Namen wie die Attribute, Attribute werden über this referenziert /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

43 Konstruktoren Beim Programmieren von Konstruktoren müssen wir planen: Welche Attribute sollen mit Startwerten belegt werden? Wie werden diese vom Aufrufer übergeben? Sollen weitere Berechnungen durchgeführt werden? Beispiel Mass von vorhin: Ein Körper besitzt eine Masse und eine Geschwindigkeit, aber nur die Masse sollte beim Erzeugen des Körpers gegeben werden, denn der Körper ruht bevor eine Kraft auf ihn wirkt /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

44 Beispiel Wir schreiben also einen Konstruktor für die Klasse Mass. Er bekommt die Masse gegeben. Die Geschwindigkeit wird dagegen auf Null gesetzt: class Mass { double m; double v; public Mass(double m) { this.m = m; v = 0; public double energy() { return m * v * v / 2.0; public void applyforce(double force) { Mass v = new Mass(100); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

45 Mehrere Konstruktoren Eine Klasse kann mehrere Konstruktoren haben, diese haben den gleichen Namen aber verschiedene Parameter: class Mass { double m; double v; public Mass() { m = 0; v = 0; public Mass(double m) { this.m = m; v = 0; public Mass(double m, double v) { this.m = m; this.v = v; public double energy() { return m * v * v / 2.0; public void applyforce(double force) { Mass a = new Mass(); Mass b = new Mass(100); Mass c = new Mass(10,-2); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

46 Konstruktoren Beim Schreiben von Konstruktoren ist zu beachten: Es gibt automatisch den leeren Konstruktor, der alles mit Nullen belegt, solange kein parametrisierter Konstruktor geschrieben wird Parameter bekommen gleichen Namen wie die Attribute von this Das Anlegen eines Objekts soll möglichst bequem sein Konstruktoren dürfen nicht static sein Konstruktoren können nicht bei fertigen Objekten aufgerufen werden Die Verwendung von Konstruktoren spielt eine zentrale Rolle bei der Polymorphie von Objekten, die wir später behandeln /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

47 Styleguide für Klassen Klassendateien sollten in dieser Form aufgebaut werden: 1 Kommentar zu der Klasse in der Form /**...*/ 2 Klassendeklaration 3 Implementierungskommentar zu der Klasse 4 Statische Attribute (public Standard protected private) 5 Objektgebundene Attribute (public Standard protected private) 6 Konstruktoren 7 Statische Methoden 8 Setter/Getter 9 Restliche Objektmethoden, sinnvoll gruppiert und kommentiert /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Einstieg in die Informatik mit Java

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

Mehr

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

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

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

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

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

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

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

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

Ü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

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

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

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

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

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

Einstieg in die Informatik mit Java

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

Mehr

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

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

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

JAVA - Methoden - Rekursion

JAVA - Methoden - Rekursion Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen

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

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

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

Java I Vorlesung 6 Referenz-Datentypen

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

Mehr

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

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: Vererbung. Teil 3: super() www.informatikzentrale.de

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

Mehr

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

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

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

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon. Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe

Mehr

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben

Mehr

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 2: OOP und JAVA (Vorlesung 11) Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Java Einführung Methoden. Kapitel 6

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

Mehr

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

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

Prof. W. Henrich Seite 1

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

Mehr

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

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

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

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

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache

Mehr

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

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

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8

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

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

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

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

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Programmieren I. Überblick Objektorientierung Heusch 12 Ratz 7. Institut für Angewandte Informatik

Programmieren I. Überblick Objektorientierung Heusch 12 Ratz 7.  Institut für Angewandte Informatik Programmieren I Überblick Objektorientierung Heusch 12 Ratz 7 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Objektorientierte Softwarenentwicklung Was ist das grundlegende Konzept

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

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

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

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

Algorithmen und Programmierung II

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

Mehr

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

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

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

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

6 Speicherorganisation

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

Mehr

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

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

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

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

Java I Vorlesung Objektorientiertes Programmieren

Java I Vorlesung Objektorientiertes Programmieren Java I Vorlesung 3 Objektorientiertes Programmieren 10.5.2004 Die restlichen Kontrollstrukturen Grundlagen des OOP Klassen und Objekte switch Syntax: switch ( expr ) { case const 1 : case const 2 :...

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

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

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung und Nutzereingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung Klassen, Objekte, Attribute und Methoden

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

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

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

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

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

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

Konstruktoren, Packages und Scopes

Konstruktoren, Packages und Scopes Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Konstruktoren, Packages und Scopes Dipl. Inf. Manuel Götz Lehrstuhl für Angewandte

Mehr

Programmierkurs. Manfred Jackel

Programmierkurs. Manfred Jackel Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

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.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung Programmieren 1, IN1bac, WS 10/11 Seite 1 von 6 Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces 10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

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

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

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