Repetitorium Informatik (Java)

Größe: px
Ab Seite anzeigen:

Download "Repetitorium Informatik (Java)"

Transkript

1 Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme)

2 Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding: Methoden überschreiben 3 Pakete 4 Java-API Inhalt der Java-API Dokumentation Beispiel: Klasse Math Beispiel: Klasse Arrays Beispiel: Klasse Scanner Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 2 / 43

3 Rückblick Gestern: Methode equals() public boolean equals ( Object o) { /*... */ Bereits angedeutet: Alle Klassen in Java erben (direkt oder indirekt) von der Klasse Object. Jedes Objekt ist mindestens ein Object Heute: Genaueres zu Vererbung Statischer Typ Dynamischer Typ Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 3 / 43

4 Vererbung Jede Klasse hat eine sog. Oberklasse (außer der obersten : Object). Oberklassen werden entweder explizit bei Deklaration der Klasse angegeben, oder es wird implizit automatisch Object angenommen. Eine Klasse kann Oberklasse für mehrere andere Klassen sein; diese heissen dann Unterklassen Eine Unterklasse erbt von der Oberklasse Attribute und Methoden. auch von der Oberklasse der Oberklasse, sowie von der Oberklasse der Oberklasse der Oberklasse,... Ober-/Unterklassen-Verhältnis bildet Baumstruktur: Vererbungshierarchie Alle Klassen kennen mindestens die Methoden der Klasse Object: equals() tostring()... Man kann in einer Unterklasse neue Attribute und Methoden einführen. Man kann in einer Unterklasse die Methoden der Oberklasse überschreiben. Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 4 / 43

5 Deklaration einer Vererbungsbeziehung Syntax [< Modifizierer >] class <Unterklasse > extends <Oberklasse > { <Definitionen > Beispiel public class Verkehrsmittel { // extends Object ( implizit ) //... public class Auto extends Verkehrsmittel { //... public class Zug extends Verkehrsmittel { //... public class Schiff extends Verkehrsmittel { //... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 5 / 43

6 Verhältnis zwischen Unterklasse und Oberklasse Zu einer Klasse kann es (in Java) exakt eine Oberklasse, aber beliebig viele (evtl. auch keine) Unterklassen geben. Bei der Modellierung mit mehreren Unterklassen sagt man: Oberklasse ist Generalisierung (Verallgemeinerung) ihrer Unterklassen: sie fasst lediglich gemeinsame Methoden und Attribute zusammen Unterklassen sind Spezialisierungen ihrer Oberklasse: sie erweitern ihre Oberklasse um dedizierte Attribute und Methoden Jede Unterklasse enthält mindestens die (sichtbaren) Attribute und Methoden ihrer Oberklasse! Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 6 / 43

7 Beispiel einer Vererbungs-Hierarchie Verwaltung von Vektor-Grafikelemente: Rechtecke Ellipsen... Gemeinsame Eigenschaften: Breite Höhe Position (x, y)... Spezialisierungen: Nur Rechtecke haben eine Diagonale. Nur Ellipsen haben eine große und eine kleine Halbachse.... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 7 / 43

8 Beispiel einer Vererbungs-Hierarchie (2) Implementierung der Vererbungs-Hierarchie public class Grafikelement { double breite, hoehe ; double x, y; //... public class Rechteck extends Grafikelement { public double diagonale () { /*... */ public class Ellipse extends Grafikelement { public double grossehalbachse () { /*... */ public double kleinehalbachse () { /*... */ Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 8 / 43

9 Statischer Typ Dynamischer Typ public boolean equals ( Object o) { /*... */ Bereits bekannt: Parameter o der Methode equals() ist als vom Typ Object deklariert Dennoch: Auch Objekte eines anderen Typs als Argument erlaubt (polymorph) Objekte bzw. Referenzen haben statischen Typ: Datentyp, der bei der Deklaration der Referenz angegeben wird dynamischen Typ: Datentyp des zur Laufzeit tatsächlich zugewiesenen Objekts Der statische Typ bleibt immer gleich, aber der dynamische Typ kann zur Laufzeit variieren Polymorphie. Der dynamische Typ ist entweder der statische Typ selbst oder eine davon abgeleitete Unterklasse. Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 9 / 43

10 Statischer Typ Dynamischer Typ: Beispiel Klassen-Hierarchie public class Grafikelement { /*... */ public class Rechteck extends Grafikelement { /*... */ public class Ellipse extends Grafikelement { /*... */ Beispiel Grafikelement element; element = new Rechteck(); element = new Ellipse(); Typen Zeile Statischer Typ Dynamischer Typ 1 Grafikelement keiner ( null ) 2 Grafikelement Rechteck 3 Grafikelement Ellipse Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 10 / 43

11 (Etwas) sinnvolleres Beispiel... Neue Klasse Zeichenflaeche zur Verwaltung beliebiger Grafikelemente (Rechtecke, Ellipsen oder weitere Unterklassen) Anzahl der Grafikelemente beschränkt Methode zum Hinzufügen neuer Grafikelemente notwendig Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 11 / 43

12 Implementierung der Klasse Zeichenflaeche Die Klasse Zeichenflaeche public class Zeichenflaeche { final static int MAX_ANZAHL = 20; int anzahl = 0; Grafikelement [] elemente = new Grafikelement [ MAX_ANZAHL ]; public void hinzufuegen ( Grafikelement element ) { if ( anzahl < MAX_ANZAHL ) { elemente [ anzahl ] = element ; anzahl ++; Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 12 / 43

13 Zugriff auf Methoden und Attribute... Zur Übersetzungszeit nur statischer Typ eines Objekts bekannt daher nur Zugriffe auf Methoden / Attribute möglich, die im statischen Typ bekannt sind. So nicht... Grafikelement element = new Ellipse (); element. kleinehalbachse (); // statischer Typ von " element " ist " Grafikelement " // und kennt daher keine Methode kleinehalbachse ()! Lösung: Explizite Typumwandlung (sog. type cast ) Grafikelement element = new Ellipse (); //... Ellipse elementellipse = ( Ellipse ) element ; elementellipse. kleinehalbachse (); // oder direkt und verschachtelt : Grafikelement element = new Ellipse (); //... (( Ellipse )( element )). kleinehalbachse (); Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 13 / 43

14 Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding: Methoden überschreiben 3 Pakete 4 Java-API Inhalt der Java-API Dokumentation Beispiel: Klasse Math Beispiel: Klasse Arrays Beispiel: Klasse Scanner Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 14 / 43

15 Polymorphie Polymorphie Vielgestaltigkeit Fähigkeit eine Bezeichners (Variablenname, Operator,...), in Abhängigkeit seiner Verwendung verschiedene Datentypen bzw. Funktionen anzunehmen Wir schauen uns zwei Formen der Polymorphie genauer an: Overloading Overriding Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 15 / 43

16 Overloading: Beispiel zum Einstieg Beispiel System. out. println (13 + 3); System. out. println (" Hallo " + " Welt!"); 1. Überladene Methode Methode System.out.println() definiert für verschiedene Parameter-Typen: int String 2. Überladener Operator Der Operator + hat zwei verschiedene Funktionen : Addition (int int int) Konkatenation (String String String) Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 16 / 43

17 Overloading Overloading Eine Methode heißt überladen, wenn es mehrere Definitionen mit gleichen Namen aber unterschiedlichen Parametern gibt. Der Compiler sucht sich für den Aufruf die passende Funktion heraus. Wichtig! Überladene Methoden müssen sich in ihren Parametern (Anzahl, Reihenfolge, Typen) unterscheiden, ein unterschiedlicher Rückgabetyp alleine reicht nicht aus! Signatur Der Name der Methode und die Parametertypen bilden die Signatur einer Methode. Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 17 / 43

18 Mit und ohne Overloading Schlecht... void printint ( int i) { /*... */ void printstring ( String s) { /*... */ void printdouble ( double d) { /*... */ Programmierer muss sich mehr Methoden-Namen merken, als nötig Besser void print ( int i) { /*... */ void print ( String s) { /*... */ void print ( double d) { /*... */ Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 18 / 43

19 Anwendungsmöglichkeit 1: Überladene Konstruktoren Konstruktoren müssen in Java so heißen wie die Klasse Mehrere Konstruktoren nur durch Overloading möglich Beispiel: Klasse Rechteck soll Erstellung von Quadraten komfortabel ermöglichen Klasse Rechteck mit überladenem Konstruktor public class Rechteck { int breite ; int hoehe ; public Rechteck ( int breite, int hoehe ) { this. breite = breite ; this. hoehe = hoehe ; public Rechteck ( int kantenlaenge ) { this. breite = kantenlaenge ; this. hoehe = kantenlaenge ; Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 19 / 43

20 Anwendungsmöglichkeit 2: Standardwerte Manche Sprachen erlauben es, Parametern Standardwerte zu geben Aufrufer kann diesen Parametern Werte zuweisen, muss es aber nicht Java erlaubt dies nicht Aber: Nachbildung durch Overloading möglich Standardwerte für Parameter public void ausgabe ( String pre, String s) { System. out. println ( pre + "> " + s); public void ausgabe ( String s) { ausgabe ("", s); Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 20 / 43

21 Overriding Overriding (Überschreiben) Eine Methode heißt überschrieben, wenn eine Methode der Oberklasse in der Unterklasse erneut (ohne Änderung der Signatur) implementiert wurde. Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 21 / 43

22 Beispiel für Overriding Beispiel für Overriding class Oberklasse { public void methode () { System. out. println (" Standard - Verhalten "); class Unterklasse extends Oberklasse { public void methode () { System. out. println (" Ueberschrieben bzw. spezialisiert!"); Aufruf Unterklasse objekt = new Unterklasse (); objekt. methode (); Ausgabe Ueberschrieben bzw. spezialisiert! Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 22 / 43

23 Aufruf von überschriebenen Methoden von innen Innerhalb: Zugriff mit super auf Methoden/Attribute der Oberklasse möglich Beispiel: Erweiterung des Verhaltens Zuerst: Ausführen des Standard-Verhaltens Anschließend: Spezialisierte Anweisungen Beispiel für Overriding class Unterklasse extends Oberklasse { public void methode () { super. methode (); System. out. println (" Spezialisierung!"); Aufruf Unterklasse objekt = new Unterklasse (); objekt. methode (); Ausgabe Standard-Verhalten! Spezialisierung! Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 23 / 43

24 Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding: Methoden überschreiben 3 Pakete 4 Java-API Inhalt der Java-API Dokumentation Beispiel: Klasse Math Beispiel: Klasse Arrays Beispiel: Klasse Scanner Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 24 / 43

25 Pakete Bereits bekannte Konzepte zur Modularisierung: Methoden Klassen Weiteres Konzept: Paket (package) Paket bildet abgeschlossenes Modul Verpackt eine oder mehrere Klassen Gruppe von thematisch zusammengehörenden Klassen (und Interfaces) Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 25 / 43

26 Klasse in ein Paket packen Beispiel Klasse einem Paket zuweisen: package-anweisung package praktikum ; public class EineKlasse { //... Beispiel Durch Punkte (.) kann eine Hierarchie erzeugt werden package praktikum. tag8 ; public class EineKlasse { //... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 26 / 43

27 Klassen eines anderen Pakets benutzen Klassen aus fremnden Paketen können benutzt werden (falls diese public sind) Mit voll qualifiziertem Klassennamen Klasse in einem Paket package praktikum. tag8 ; public class EineKlasse { //... Im selben Paket package praktikum. tag8 ; public class WeitereKlasse { EineKlasse q = new EineKlasse (); //... Voll qualifizierter Klassenname package praktikum. uebersicht ; public class AndereKlasse { praktikum. tag8. EineKlasse x = new praktikum. tag8. EineKlasse (); //... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 27 / 43

28 Klassen eines anderen Pakets benutzen: import Besser: Klassen einmalig importieren import-anweisung Klasse in einem Paket package praktikum. tag8 ; public class EineKlasse { //... Im selben Paket package praktikum. tag8 ; public class WeitereKlasse { EineKlasse q = new EineKlasse (); //... Importieren der Klasse package praktikum. uebersicht ; import praktikum. tag8. EineKlasse ; public class AndereKlasse { EineKlasse x = new EineKlasse (); //... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 28 / 43

29 Alle Klassen eines Pakets importieren Falls viele Klassen notwendig: Einzeln importieren aufwändig Möglichkeit: Alle Klassen eines Pakets zusammen importieren import-anweisung mit Wildcard (*) Beispiel package praktikum. uebersicht ; import praktikum. tag8.*; public class AndereKlasse { EineKlasse x = new EineKlasse (); WeitereKlasse y = new WeitereKlasse (); //... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 29 / 43

30 Compiler muss Klassen finden können... Damit der Compiler die Klassen in Paketen findet,... muss die Ordnerstruktur dem hierarchischen Paketnamen entsprechen oder der Pfad zu den Klassen im Suchpfad sein package praktikum. tag8 ; public class EineKlasse { /* */ package praktikum. tag8 ; public class WeitereKlasse { /* */ package praktikum. uebersicht ; import praktikum. tag8.*; public class AndereKlasse { /* */ Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 30 / 43

31 Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding: Methoden überschreiben 3 Pakete 4 Java-API Inhalt der Java-API Dokumentation Beispiel: Klasse Math Beispiel: Klasse Arrays Beispiel: Klasse Scanner Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 31 / 43

32 Was ist ein API? API application programming interface Programmierschnittstelle / Schnittstelle zur Anwendungsprogrammierung Bietet (je nach Umfang) verschiedene Dienste an: Zugriff auf Dateien Zugriff auf Datenbanken Erstellen von grafischen Oberflächen Datenstrukturen Algorithmen... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 32 / 43

33 Java-API Java-API: Umfrangreiche Klassenbibliothek Vom Betriebssystem unabhängiges API Beispiel: Das Paket java.util bietet v.a. Datenstrukturen 1 : Verschiedene Listen Stack Hashmap... 1 Genaueres zu diesen Datenstrukturen in der Vorlesung. Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 33 / 43

34 Dokumentation Zum Java-API existiert eine umfangreiche Dokumentation Aktuelle Version zu finden unter Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 34 / 43

35 Beispiel: Dokumentation zu equals() Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 35 / 43

36 Beispiel: Klasse Math Die Klasse Math beinhaltet Methoden für mathematische Operationen: Minimum/Maximum Wurzel Logarithmus Trigonometrische Funktionen... Beispiel: Berechnung der Wurzel double wurzel = Math. sqrt ( ) ; Beispiel: sin() double sinus = Math. sin (0.13) ; // Bogenmass! Beispiel: Umwandlung Grad Bogenmaß double bogenmass = Math. toradians (45) ; double grad = Math. todegrees (0.25* Math. PI); Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 36 / 43

37 Beispiel: Klasse Arrays java.util.arrays beinhaltet Methoden zur Manipulation von Arrays: Sortieren Suchen Füllen Kopieren... Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 37 / 43

38 Beispiel: Arrays.fill() Arrays.fill(): Setzt Array-Elemente auf einen Wert Signatur(en) public static void fill ( int [] a, int val ) public static void fill ( int [] a, int fromindex, int toindex, int val ) Beispiel (Überladene Methoden für andere Datentypen vorhanden) import java. util. Arrays ; //... int [] zahlen = new int [100]; Arrays. fill ( zahlen, 42) ; Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 38 / 43

39 Beispiel: Arrays.toString() Beispiel Arrays.toString(): Umwandlung von Array in String v.a. für Debug-Ausgaben äußerst hilfreich! import java. util. Arrays ; //... int [] zahlen = {3, 42, 13, 101; System. out. println ( Arrays. tostring ( zahlen )); Ausgabe [3, 42, 13, 101] Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 39 / 43

40 Beispiel: Arrays.sort() Beispiel Arrays.sort(): Sortiert Array-Elemente aufsteigend import java. util. Arrays ; //... int [] zahlen = {3, 42, 13, 101; Arrays. sort ( zahlen ); System. out. println ( Arrays. tostring ( zahlen )); Ausgabe [3, 13, 42, 101] Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 40 / 43

41 Beispiel: Klasse Scanner Bisher: Eingaben durch den Benutzer nur über Startparameter (args) Wie können Eingaben zur Laufzeit verarbeitet werden? Lesen von der Standardeingabe (stdin) Möglichkeit: Klasse java.util.scanner Erstellen eines Scanner-Objekts import java. util. Scanner ; //... Scanner scanner = new Scanner ( System. in); // von der Standardeingabe lesen Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 41 / 43

42 Beispiel: Scanner.next() Scanner.next() liefert die nächste Zeile als String Beispiel System. out. println (" Wie ist dein Name?"); String name = scanner. next (); System. out. println (" Hallo, " + name + "!"); Ein-/Ausgabe Wie ist dein Name? Klaus Hallo, Klaus! Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 42 / 43

43 Beispiel: Scanner.nextInt() Beispiel Konvertieren beim Einlesen möglich (z.b. int) Scanner.nextInt() Scanner.hasNextInt() überprüft, ob es sich wirklich um einen int handelt System. out. println (" Bitte Zahl eingeben :"); if ( scanner. hasnextint ()) { int d = scanner. nextint (); System. out. println (" Eingegebene Zahl : " + d); else { System. out. println (" Ungueltige Eingabe!"); Ein-/Ausgabe (1) Bitte Zahl eingeben: 13 Eingegebene Zahl: 13 Ein-/Ausgabe (2) Bitte Zahl eingeben: foo Ungueltige Eingabe! Repetitorium Informatik Informatik 2 WS 2015/16 Tag 8 Folie 43 / 43

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

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 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

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

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

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

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

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

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

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

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

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

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

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Java Einführung Packages

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

Vererbung & Schnittstellen in C#

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

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

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

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

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

Mehr

Einführung in die. objektorientierte Programmierung

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

Mehr

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

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

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

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

Mehr

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

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

Mehr

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

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

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

Mehr

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

1 Polymorphie (Vielgestaltigkeit)

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

Mehr

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

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter Java, Objektorientierung 5.1 (U )

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

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

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

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

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

Mehr

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

Algorithmen und Datenstrukturen 07

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

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

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

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

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

Mehr

Vorlesung Informatik II

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

Mehr

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

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

Java Einführung Vererbung und Polymorphie. Kapitel 13

Java Einführung Vererbung und Polymorphie. Kapitel 13 Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort

Mehr

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

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

Mehr

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

II.1.1. Erste Schritte - 1 -

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

Mehr

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

Abschnitt 9: Schnittstellen: Interfaces

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

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

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

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

JAVA - Methoden

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

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

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

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

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

Mehr

3. Konzepte der objektorientierten Programmierung

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

Mehr

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

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

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

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

Ü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

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

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

Java für Computerlinguisten

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

Mehr

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

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

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

Mehr

Prinzipielle Ausführungsvarianten I

Prinzipielle Ausführungsvarianten I Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

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

Mehr

Prinzipien Objektorientierter Programmierung

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

Mehr

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

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

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

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

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

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface

Mehr

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

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

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Javakurs für Anfänger

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

Mehr

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

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

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

Einfache Arrays. 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

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

5. Abstrakte Klassen

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

Mehr