Tag 7 Repetitorium Informatik (Java)

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

Java Einführung Methoden in Klassen

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

Mehr

Einstieg in die Informatik mit Java

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

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

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

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

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

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

Mehr

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

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

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

Ü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

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

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 zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

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

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

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

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

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

3 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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

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

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

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

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

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

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

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

Mehr

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

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

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

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

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

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

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

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

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

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

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

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

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

Innere Klassen in Java

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

Mehr

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

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

Mehr

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

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

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

Mehr

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

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

Mehr

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

Java - Klassen und Objekte

Java - Klassen und Objekte Java - Klassen und Objekte Der Würfel hat 12 Kanten. Der Würfel ist grün eingefärbt. Die Kanten sind in schwarz gezeichnet. Der Würfel kann gedreht werden. Die Kantenfarbe und die Seitenfarbe kann verändert

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

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

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

12 Klassen in Java. 12.1 Instanz- und Klassenbestandteile

12 Klassen in Java. 12.1 Instanz- und Klassenbestandteile 12 Klassen in Java Nun soll es endlich daran gehen, in Java eigene Klassen zu erstellen. Wir schließen hier an der in in Kapitel?? begonnenen Diskussion über Klassen und Objekte an. Wenn Ihnen die Inhalte

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

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

Repetitorium Informatik (Java)

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

Mehr

Klassen und Methoden

Klassen und Methoden Klassen und Methoden Strukturierung von Daten und Programmen in Java strukturiertes Programmieren Der "prozedurale" Teil von Java wurde im vorigen Abschnitt behandelt. Um größere Projekte zu bearbeiten

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

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

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

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

Ü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

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

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

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013.

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013. Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VIII Einstieg in Java II Michael Roth (h_da) Informatik

Mehr

Grundwissen Informatik JS 10 24. September 2015

Grundwissen Informatik JS 10 24. September 2015 Grundwissen Informatik JS 10 24. September 2015 Grundlagen der Objektorientierung 1. Erkläre die Begriffe Klasse, Attribut, Attributwert, Objekt, Methode und Dienst. Beispiel! Allgemein Eine Klasse ist

Mehr

Einstieg in die Programmierung mit Visual Basic.NET

Einstieg in die Programmierung mit Visual Basic.NET Einstieg in die Programmierung mit Visual Basic.NET Agenda - Methoden mit Argumenten - Überladen von Methoden - Eigenschaftenprozeduren - Eigenschaftenprozeduren automatisch generieren - Konstruktoren

Mehr

Computeranwendung und Programmierung (CuP)

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

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

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

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

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 44 1 Methoden implementieren Motivation Aufbau einer Methode

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

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

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

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

SS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

SS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof. SS 2010 Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1 Übungsblatt 1 Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Bank-Verwaltungs-System In dieser Klausur werden

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Semestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A

Semestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A Semestralklausur Einführung in die Programmierung, WS 2005/06, 6.2.2006 Seite 1/6 Name, Vorname, Matrikelnummer: Unterschrift: 1 Grundlagen (5+5 Punkte) Gruppe A a) Schreiben Sie eine Klassenmethode mit

Mehr

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

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

Klassenbeziehungen & Vererbung

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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

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

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

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

Mehr

Objektorientierte Programmierung OOP

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

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr