Tag 7 Repetitorium Informatik (Java)

Größe: px
Ab Seite anzeigen:

Download "Tag 7 Repetitorium Informatik (Java)"

Transkript

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

2 Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 2 / 36

3 Übersicht Klassen und Objekte Grundbegriffe Definition von Klassen Instanzmethoden/-variablen vs. Klassenmethoden/-variablen Instanziierung von Klassen Erzeugung von Objekten Konstruktoren Übersetzen/Ausführen mit mehreren Klassen Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 3 / 36

4 Klassen und Objekte

5 Motivation (I) bisher: Verwendung von vordefinierten (primitiven) Datentypen int, double, boolean,... eine Variable eines solchen Typs speichert immer genau ein Datum Arrays, um mehrere Werte desselben Typs zu speichern aber: häufig: Daten unterschiedlichen Typs, die konzeptuell zusammengehören zusätzlich Methoden, die auf bzw. mit diesen Daten arbeiten jetzt: Definition und Verwendung von eigenen, zusammengesetzten Datentypen Einstieg in die Objektorientierte Programmierung (OOP) Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 5 / 36

6 Motivation (II) Bisher... // zwei Konten... int kontonr1 = ; String eigentuemer1 = " Musterfrau "; double kontostand1 = ; int kontonr2 = ; String eigentuemer2 = " Mustermann "; double kontostand2 = ; //... und eine "Ü berweisung " System. out. println ("Ü berweisung von " + kontonr1 + " nach " + kontonr2 ); kontostand1 = kontostand1-50; kontostand2 = kontostand2 + 50; Nicht schön... Obwohl Kontonummer, Eigentümer und Kontostand jeweils zusammengehören, sind sie in unabhängigen Variablen gespeichert. Pro neues Konto müssten drei neue Variablen angelegt werden. Die Implementierung der Überweisung ist von den Daten getrennt. Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 6 / 36

7 Motivation (III) Ziel für unser Beispiel: Definition und Verwendung eines neuen Datentyps Konto speichert die Daten Kontonummer, Eigentümer und Kontostand bietet eine Methode, um eine Überweisung zu tätigen Objektorientierte Programmierung (OOP): Daten und zugehörige Operationen, die auf diesen Daten arbeiten, zu einer konzeptuellen und organisatorischen Einheit zusammenfassen ( Klasse) was zusammengehört, wird zusammengefasst was nicht zusammengehört, wird voneinander getrennt erlaubt Modularisierung und Wiederverwendung ein Programm besteht i.a. aus vielen verschiedenen Klassen diese Klassen verwenden sich gegenseitig Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 7 / 36

8 Grundbegriffe: Klassen und Objekte Klasse OOP-Konzept zur Definition neuer, zusammengesetzter Datentypen die Klassendefinition legt fest: Attribute: Variablen für zu speichernde Daten Methoden: zur Verfügung stehende Operationen auf den Daten stellt eine Art Schablone oder Bauplan dar Objekt konkretes Exemplar einer Klasse eine Ausprägung wird gemäß der Schablone erzeugt und kann entsprechend verwendet werden i.a. werden mehrere Objekte derselben Klasse erzeugt und verwendet Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 8 / 36

9 Klassen und Objekte in unserem Beispiel Klasse Konto Attribute: kontonummer, eigentuemer, kontostand Methoden: ueberweisen, kontostandausgeben Objekte der Klasse Konto kontonummer: eigentuemer: Musterfrau kontostand: kontonummer: eigentuemer: Mustermann kontostand: Merke Es wird einmalig bei der Klassendefinition festgelegt, welche Attribute (und Methoden) ein Konto hat, aber jedes Objekt hat eigene Kopien der Attribute mit eigenen Werten. Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 9 / 36

10 Klassen und Objekte in einem anderen Beispiel Klasse Mitarbeiter Attribute: name, gehalt, abteilung Methoden: befoerdern, entlassen Objekte der Klasse Mitarbeiter name: Musterfrau gehalt: abteilung: Abteilung A name: Mustermann gehalt: abteilung: Abteilung B... Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 10 / 36

11 Definition von Klassen Syntax: Klassendefinition (vereinfacht) Modifizierer class Klassenname { Definitionen Hinweise Modifizierer zunächst immer nur public Datei muss genauso heißen wie die Klasse Klassenname bestehend aus Buchstaben, Zahlen und (bestimmten) Sonderzeichen Konventionen: ausschließlich Buchstaben, beginnend mit Großbuchstaben Definitionen Deklaration von Attributen und Methoden Reihenfolge egal, per Konvention üblicherweise zuerst Attribute Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 11 / 36

12 Attribute bisher: nur lokale Variablen Deklaration innerhalb von Methoden (bzw. darin verschachtelten Blöcken) Verwendung nur innerhalb dieser Methode (bzw. dieses Blocks) möglich jetzt: Attribute ( globale Variablen ) Deklaration direkt innerhalb einer Klasse Syntax zur Deklaration und Initialisierung wie bei lokalen Variablen Zugriff aus allen Methoden (und ggf. von außerhalb, s.u.) möglich Beispiel public class Konto { int kontonummer ; String eigentuemer ; double kontostand ; Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 12 / 36

13 Instanzmethoden/-variablen vs. Klassenmethoden/-variablen Jetzt wird es ein ganzes Stück komplizierter. Bei Unklarheiten Fragen stellen! bekannt: Unterscheidung: Objekt Klasse jetzt: Unterscheidung: Instanzmethode/-variable Klassenmethode/-variable grob (Details kommen gleich!): eine Instanzmethode/-variable gehört zu einem einzelnen konkreten Objekt Zugriff auf eine solche Methode/Variable nur über ein Objekt der Klasse eine Klassenmethode/-variable gehört zu der gesamten Klasse Zugriff auf eine solche Methode/Variable ohne konkretes Objekt möglich Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 36

14 Instanzvariablen eine Instanzvariable gehört zu einem einzelnen konkreten Objekt eine Instanzvariable wird einmalig innerhalb der Klasse deklariert aber: jedes Objekt hat eine eigene Kopie jeder Instanzvariable jedes Objekt kann eigenen Wert für seine Instanzvariable haben Deklaration einer Instanzvariable ohne weiteres Schlüsselwort (im Gegensatz zu Klassenvariablen, siehe unten) Beispiel: Konto Jedes Konto soll jeweils eigene Kontonummer, Eigentümer und Kontostand haben. Deshalb deklarieren wir die Attribute als Instanzvariablen. Beispiel: Konto public class Konto { int kontonummer ; String eigentuemer ; double kontostand ; Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 14 / 36

15 Klassenvariablen eine Klassenvariable gehört zu der gesamten Klasse alle Objekte der Klasse teilen sich eine Klassenvariable alle Objekte der Klasse lesen und schreiben die identische Variable nützlich für Variablen, die konzeptuell zwar zu einer Klasse gehören, die aber für alle Objekte der Klasse denselben Wert haben sollen Deklaration einer Klassenvariable mit zusätzlichem Schlüsselwort static Beispiel: Konto Die Konto-Objekte sollen aufsteigende Kontonummern erhalten. Um herausfinden zu können, wie viele Konten es gibt (und was demnach die nächste Kontonummer ist), verwenden wir eine Klassenvariable. Beispiel: Konto public class Konto { static int kontenanzahl ; int kontonummer ; String eigentuemer ; double kontostand ; Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 15 / 36

16 Klassen- und Instanzvariablen im Beispiel Beispiel: Konto public class Konto { static int kontenanzahl ; int kontonummer ; String eigentuemer ; double kontostand ; Variablen im Speicher kontenanzahl kontonummer eigentuemer kontostand kontonummer eigentuemer kontostand kontonummer eigentuemer kontostand Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 16 / 36

17 Zugriff auf Instanz- und Klassenvariablen (I) Syntax: Zugriff auf Instanzvariablen Objektvariable. Variablenname Syntax: Zugriff auf Klassenvariablen Klassenname. Variablenname Hinweise für den Zugriff auf eine Instanzvariable braucht man eine Objektvariable gibt an, welche Kopie der Instanzvariable gelesen bzw. geschrieben werden soll für den Zugriff auf eine Klassenvariable reicht der Klassenname Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 36

18 Zugriff auf Instanz- und Klassenvariablen (II) Beispiel: Konto public class Konto { static int kontenanzahl ; int kontonummer ; String eigentuemer ; double kontostand ; Beispiel: Bank public class Bank { public static void main ( String [] args ) { Konto konto1 ; // hier fehlt noch die Erzeugung des // Kontos ( siehe unten ) Konto. kontenanzahl += 1; konto1. kontonummer = Konto. kontenanzahl ; Aus didaktischen Gründen... Normalerweise würde man das Zählen der Konten und die Vergabe der Kontonummer innerhalb der Klasse Konto implementieren (siehe unten). Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 18 / 36

19 Instanzmethoden eine Instanzmethode arbeitet auf einem konkreten Objekt kann auf die Instanzvariablen dieses Objekts zugreifen man sagt: eine Instanzmethode wird auf einem Objekt aufgerufen wie beim Zugriff auf Instanzvariablen wird eine Objektvariable benötigt Deklaration einer Instanzmethode ohne Schlüsselwort static Beispiel: Konto Die Klasse Konto soll um eine Methode erweitert werden, die den Kontostand eines Kontos ausgibt. Da diese Methode Zugriff auf eine Instanzvariable eines konkreten Objekts braucht, verwenden wir eine Instanzmethode. Beispiel: Konto public class Konto { double kontostand ; //... public void kontostandausgeben () { System. out. println ( " Kontostand : " + kontostand ); Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 19 / 36

20 Selbstreferenz: this (I) jede Instanzmethode kennt das Objekt, auf dem sie aufgerufen wurde zugreifbar über die implizit definierte Variable this alternativer Zugriff auf die eigenen Instanzvariablen (und -methoden) Beispiel ohne this public class Konto { double kontostand ; //... public void kontostandausgeben () { System.out. println ( " Kontostand : " + kontostand ); Beispiel mit this public class Konto { double kontostand ; //... public void kontostandausgeben () { System. out. println ( "... " + this. kontostand ); Empfehlung Beim Zugriff auf die eigenen Instanzvariablen immer ein this voranstellen. Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 20 / 36

21 Selbstreferenz: this (II) this notwendig bei Namenskonflikt zwischen Instanzvariable/lokaler Variable this.variablenname Instanzvariable Variablenname lokale Variable Beispiel: Namenskonflikt zwischen Instanzvariable/lokaler Variable public class Konto { double kontostand ; //... public void setzekontostand ( double kontostand ) { this. kontostand = kontostand ; // FALSCH w ä re: kontostand = kontostand ; Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 21 / 36

22 Klassenmethoden eine Klassenmethode arbeitet auf der gesamten Klasse kann ohne konkretes Objekt auf der Klasse aufgerufen werden kann nicht auf Instanzvariablen zugreifen, nur auf Klassenvariablen nützlich für Methoden, die konzeptuell zu einer Klasse gehören, aber kein konkretes Objekt der Klasse benötigen Deklaration einer Klassenmethode mit zusätzlichem Schlüsselwort static Beispiel: Konto Die Klasse Konto soll um eine Methode erweitert werden, die die Anzahl der Konten ausgibt. Da diese Methode kein konkretes Objekt und nur Zugriff auf Klassenvariablen braucht, verwenden wir in diesem Fall eine Klassenmethode. Beispiel: Konto public class Konto { static int kontenanzahl ; //... public static void anzahlausgeben () { System.out. println ( "# Konten : " + kontenanzahl ); Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 22 / 36

23 Zugriff auf Instanz- und Klassenmethoden (I) Syntax: Zugriff auf Instanzmethoden Objektvariable. Methodenname ( Argument1, Argument2,...) Syntax: Zugriff auf Klassenmethoden Klassenname. Methodenname ( Argument1, Argument2,...) Hinweise für den Zugriff auf eine Instanzmethode braucht man eine Objektvariable bestimmt, auf welchem Objekt die Instanzmethode aufgerufen wird legt die this-variable innerhalb der Instanzmethode fest bei einem Aufruf auf demselben Objekt (this) kann die Objektvariable entfallen für den Zugriff auf eine Klassenmethode reicht der Klassenname bei einem Aufruf innerhalb derselben Klasse kann der Klassenname entfallen Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 23 / 36

24 Zugriff auf Instanz- und Klassenmethoden (II) Beispiel: Konto public class Konto { static int kontenanzahl ; int kontonummer ; String eigentuemer ; double kontostand ; public void kontostandausgeben () { System.out. println ( " Kontostand : " + this. kontostand ); Beispiel: Bank public class Bank { public static void macheausgaben () { Konto konto1 ; // hier fehlt noch die Erzeugung // des Kontos ( siehe unten ) Konto. anzahlausgeben (); konto1. kontostandausgeben (); public static void anzahlausgeben () { System.out. println ( "# Konten : " + kontenanzahl ); public static void main ( String [] args ){ // Klassenmethode in gleicher Klasse // -> Klassenname kann entfallen macheausgaben (); Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 24 / 36

25 Instanz- oder Klassenmethode? (I) Methode ueberweisung() Sollte die Methode ueberweisung() eine Instanz- oder eine Klassenmethode sein? Überlegungen arbeitet auf konkreten Objekten und deren Instanzvariablen ueberweisung() als Instanzmethode? arbeitet auf zwei konkreten Objekten Welches der beiden Objekte ist this? Bedeutet k1.ueberweisung(k2, 10.00) eine Überweisung von oder nach k1? ueberweisung() als Klassenmethode mit zwei Konto-Parametern? Geht beides! Letztendlich ist es eine Entwurfsentscheidung Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 25 / 36

26 Instanz- oder Klassenmethode? (II) Als Instanzmethode public class Konto { double kontostand ; //... Als Klassenmethode public class Konto { double kontostand ; //... // Name deutet Verwendung an! public void ueberweisungnach ( Konto empfaenger, double betrag ) { this. kontostand -= betrag ; empfaenger. kontostand += betrag ; public static void ueberweisung ( Konto empfaenger, Konto sender, double betrag ) { sender. kontostand -= betrag ; empfaenger. kontostand += betrag ; Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 26 / 36

27 Instanziierung von Klassen

28 Wiederholung: Erzeugung von Arrays bekannt: ein Array muss vor der Verwendung erst erzeugt werden Instanziierung mit dem Schlüsselwort new unter Angabe der Größe Beispiel: Array-Instanziierung int [] zahlen = new int [13]; die Array-Variable (zahlen) speichert eine Referenz auf das neue Array Referenz Information, wo das Objekt im Speicher liegt Details zu Referenzen gibt es morgen Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 28 / 36

29 Erzeugung von Objekten auch Klassen müssen instanziiert werden, um konkrete Objekte zu erzeugen erfolgt wie bei Arrays mit Hilfe des Schlüsselworts new Angabe des Klassennamens und ggf. Übergabe von Argumenten (s.u.) Instanziierung kann (wie bei Arrays) bei der Deklaration erfolgen Beispiel: Konto Konto konto1 ; konto1 = new Konto (); Konto konto2 = new Konto (); Achtung! Greift man auf eine nicht-initialisierte Objektvariable zu, schlägt die Übersetzung fehl oder das Programm bricht bei der Ausführung mit einer sog. NullPointerException ab. Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 29 / 36

30 Verwendung von Objektvariablen Objektvariablen können wie Variablen mit primitivem Typ verwendet werden können beispielsweise als Argument an Methoden übergeben werden Beispiel: Konto public class Konto { int kontonummer ; double kontostand ; //... Beispiel: Bank public class Bank { public static void main ( String [] args ) { Konto konto1 = new Konto (); //... ausgabe ( konto1 ); public static void ausgabe ( Konto konto ) { System.out. println ( konto. kontonummer + ": " + konto. kontostand ); Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 30 / 36

31 Konstruktoren Konstruktor: spezielle Methode, die bei der Instanziierung aufgerufen wird kann Parameter haben, denen beim Aufruf Werte übergeben werden hat keinen Rückgabetyp (auch nicht void) Konstruktorname und Klassenname müssen identisch sein aber: mehrere Konstruktoren mit unterschiedlichen Parametern möglich Konstruktoren dienen meist der Initialisierung einzelner oder aller Attribute Erzeugung eines konkreten Objektes mit gewünschten Attributwerten falls kein eigener Konstruktor definiert wird: Standardkonstruktor ohne Parameter und ohne weitere Funktionalität ansonsten: Standardkonstruktor entfällt und kann nicht benutzt werden Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 31 / 36

32 Konstruktoren: Beispiel (I) Ziel Die Klasse Konto soll einen Konstruktor erhalten, mit dem der Eigentümer und der initiale Kontostand eines Konto-Objekts gesetzt werden können. Das Konto soll automatisch die nächste verfügbare Kontonummer erhalten. Überlegungen Eigentümer und Kontostand sollen dem Konstruktor als Argumente übergeben werden die Klassenvariable kontenanzahl (s.o.) soll die Anzahl an Konten mitzählen die Variable gibt die nächste Kontonummer an die Variable muss im Konstruktor inkrementiert werden Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 32 / 36

33 Konstruktoren: Beispiel (II) Beispiel: Konto public class Konto { static int kontenanzahl ; int kontonummer ; String eigentuemer ; double kontostand ; Beispiel: Bank public class Bank { public static void main ( String [] args ) { Konto konto1 = new Konto (" Musterfrau ", ); public Konto ( String eigentuemer, double kontostand ) { this. eigentuemer = eigentuemer ; this. kontostand = kontostand ; kontenanzahl += 1; this. kontonummer = kontenanzahl ; //... Nicht mehr möglich! public class Bank { public static void main ( String [] args ) { Konto konto1 = new Konto (); Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 33 / 36

34 Übersetzen/Ausführen mit mehreren Klassen

35 Übersetzen und Ausführen mit mehreren Klassen Programme bestehen i.a. aus vielen sich gegenseitig verwendenden Klassen Beispiel: die Klassen Bank und Konto bilden zusammen ein Programm beim Übersetzen müssen alle Klassen des Programms übersetzt werden entweder einzeln und hintereinander oder gleichzeitig Tipp: bei Änderung einer Klasse immer alle Klassen erneut übersetzen Beispiel: Übersetzen von Bank und Konto /ordner$ javac Bank.java Konto.java für die Ausführung muss die Klasse mit der main-methode angegeben werden Beispiel: Ausführen des Bank-Programms /ordner$ java Bank Informatik-Repetitorium Tag 7 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 35 / 36

36 Fragen? Fragen! (hilft auch den anderen)

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

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

Tag 4 Repetitorium Informatik (Java)

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

Mehr

Tag 4 Repetitorium Informatik (Java)

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

Mehr

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

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

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15

Mehr

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:

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

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

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

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

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

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

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

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

Einstieg in die Informatik mit Java

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

Mehr

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

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

Mehr

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

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

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

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

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

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

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

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 EINI LW/ in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de http://ls14-www.cs.tu-dortmund.de

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Einstieg in die Informatik mit Java

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

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

Programmiertechnik Klassenvariablen & Instantiierung

Programmiertechnik Klassenvariablen & Instantiierung Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen

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

Methoden und Wrapperklassen

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

Mehr

Tag 2 Repetitorium Informatik (Java)

Tag 2 Repetitorium Informatik (Java) Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

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

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

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

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

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

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

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

Mehr

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

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

Mehr

Analyse der Klasse Konto

Analyse der Klasse Konto Klasse Konto erzeugt Objekte vom Typ Konto mit gleichen Eigenschaften mit gleichen Fähigkeiten Welche Eigenschaften hat ein Konto? Attribute Datenfelder - Konto hat eine Nummer - Konto hat Inhaber - Konto

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

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

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

Teil 2: Weitere Aspekte der Objektorientierung

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

Mehr

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

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

Tafelübung 07 Algorithmen und Datenstrukturen

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

Mehr

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

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Kyrill Schmid Lehrstuhl für Mobile und Verteilte Systeme Wiederholung Heutige Agenda Klassen, Objekte, Attribute und Methoden Das Schlüsselwort

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

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

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen

Mehr

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

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

Mehr

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

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

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

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

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

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

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

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

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

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

Arrays von Objekten. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Arrays von Objekten. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Wiederholung Klassen, Objekte, Attribute und Methoden Das Schlüsselwort

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

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

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

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Propädeutikum Programmierung in der Bioinformatik

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

Mehr

2.8 Klassen. Nichtgleichartige Elemente können in Klassen zu einem neuen Typ zusammengefasst werden. Beispiel: Die drei Komponenten

2.8 Klassen. Nichtgleichartige Elemente können in Klassen zu einem neuen Typ zusammengefasst werden. Beispiel: Die drei Komponenten 2.8 Klassen Frage: Arrays fassen gleichartige Elemente (d.h. Elemente von gleichem Typ) zusammen. Wie kann man nichtgleichartige Elemente zu einem neuen Typ zusammenfassen? Nichtgleichartige Elemente können

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

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

Abschnitt 10: Klassen, Objekte und Methoden in Java

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

Mehr

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung 275 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Klassen (Java) vs. Records (Pascal) 276 Pascal RECORDs in Pascal sind

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

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

Mehr

Software Entwicklung 1

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

Mehr

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

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; } Konstruktor spezielle Methode zum Initialisieren bei Erzeugen eines Objekts mit new trägt Namen der Klasse hat keinen Rückgabetyp keiner angegeben: Compiler erzeugt Standard-Konstruktor (analog: Attribute

Mehr

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

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

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

Java für Bauingenieure

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

Mehr

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

2. Unterprogramme und Methoden

2. Unterprogramme und Methoden 2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

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

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Javakurs für Anfänger

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

Mehr

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Klassen in C++ Beispiele, mit Aufzeigen der Trennung von Spezifikation und Implementierung

Mehr

Allgemeines - Prinzipien

Allgemeines - Prinzipien OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen

Mehr