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

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

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

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

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

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

Ü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

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

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

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

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

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

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

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

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

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

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

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

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

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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

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

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

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

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

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

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

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

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

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

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

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

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

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 12: Strukturierung von Java-Programmen: Packages Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

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

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

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

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

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

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

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

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

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

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Kontrollstrukturen und Funktionen in C

Kontrollstrukturen und Funktionen in C Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren

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

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Rundung und Casting von Zahlen

Rundung und Casting von Zahlen W E R K S T A T T Rundung und Casting von Zahlen Intrexx 7.0 1. Einleitung In diesem Werkstattbeitrag erfahren Sie, wie Zahlenwerte speziell in Velocity, aber auch in Groovy, gerundet werden können. Für

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

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

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

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

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

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

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

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

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

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE22-NutzungVonKlassen (Stand 28.09.2012) Aufgabe 1: Entwickeln Sie in Eclipse auf der Basis der vorgestellten Java-GUI-Klassen ein Java- Programm, das

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

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR Softwareentwicklung: Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

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

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf

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

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

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

Mehr

Gezielt über Folien hinweg springen

Gezielt über Folien hinweg springen Gezielt über Folien hinweg springen Nehmen wir an, Sie haben eine relativ große Präsentation. Manchmal möchten Sie über Folien hinweg zu anderen Folien springen. Das kann vorkommen, weil Sie den gesamten

Mehr