Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 5

Größe: px
Ab Seite anzeigen:

Download "Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 5"

Transkript

1 Übung zur Vorlesung Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Allgemeines Aufgabenblatt 5 Abgabe: , vor der Vorlesung (14:15 Uhr, AM 1) Max. Punktzahl: 75 Geben Sie als 3er oder 4er-Gruppe Ihre Lösung termingerecht unter Nennung von Vor- und Nachnamen sowie Matrikelnummern und Übungsgruppennummer auf jeder abgegebenen Seite ab. Bei Übungspartnern aus mehreren Gruppen kennzeichnen Sie bitte die Gruppe, in der die korrigierten Abgaben zurückgegeben werden sollen. Unvollständige sowie unleserliche Angaben und Lösungen führen zu Punktabzügen. Zur Bearbeitung der Aufgaben ist es erforderlich, sich selbständig über die Inhalte der Vorlesung und der Übung hinaus zu informieren. Die angegebenen Quellen und Hinweise sind als Anregung und nicht als erschöpfende Auflistung zu verstehen. Senden Sie die compilierbaren (übersetzbaren) Java-Quellcode-Dateien an proguebungabgabe@itm.uni-luebeck.de mit dem Betreff Uebung Nr 5 <Nachname1>, <Nachname>, <Nachname3>, <Nachname4> Nachdem die bei uns eingegangen ist, bekommen sie automatisch eine Eingangsbestätigung. Java-Quellcode-Dateien, die sich nicht übersetzen lassen, führen zu erheblichem Punktabzug. Gleiches gilt für nicht (rechtzeitig) abgegebenen Quellcode. Geben Sie den erstellten Quellcode sowie die Antworten auf die Fragen zusätzlich textuell auf Papier ab! Sie können sämtliche Java-Aufgaben an Ihrem privaten Computer bearbeiten und lösen. Die Java-Dateien müssen sich jedoch auf einem der Pool-Rechner übersetzen und ausführen lassen. Zur Sicherheit sollten Sie Programme, die nicht im Pool erstellt wurden, vor der Abgabe auf einen Pool-Rechner kopieren und dort testen. Die Betreuer der Übungsgruppen helfen gerne, wenn es bei der Lösung der Übungsaufgaben zu Problemen kommt. Sie können jedoch bei Problemen mit der Installation und Einrichtung von Java auf Ihren Computern keine Hilfestellung leisten. 1

2 Aufgabe 5.1: Modifier und Vererbung (10 Punkte) Mit dieser Aufgabe soll die Auswirkung von Modifiern und Vererbungshierarchien auf die Sichtbarkeit von Methoden demonstriert werden. Methoden, die aufgrund der verwendeten Modifier nicht aufrufbar sind, werden in diesem Zusammenhang als unsichtbar bezeichnet. Die Sichtbarkeit von Methoden, Klassen- und Instanzvariablen wird maßgeblich durch die Kombination von Modifiern, Packages und Vererbungshierarchien beeinflusst. Gegeben seien die 4 Klassen ClassA, ClassB, ClassC und ClassD, deren Rümpfe jeweils 4 Methodenaufrufe enthalten: 1 package blatt5.modifier.package1; 3 public class ClassA { 4 5 void hello(){ 6 System.out.println("Standardhallo von ClassA!"); 7 } 8 9 private void privatehello(){ 10 System.out.println("Privates Hallo von ClassA!"); 11 } 1 13 protected void protectedhello(){ 14 System.out.println("Geschuetztes Hallo von ClassA!"); 15 } public void publichello(){ 18 System.out.println("Oeffentliches Hallo von ClassA!"); 19 } 0 1 public static void main(string[] args){ ClassA a = new ClassA(); 3 4 a.hello(); // Aufg. 5.1.a.01 5 a.privatehello(); // Aufg. 5.1.a.0 6 a.protectedhello(); // Aufg. 5.1.a.03 7 a.publichello(); // Aufg. 5.1.a.04 8 } 9 } Listing 1: Quellcode von ClassA

3 1 package blatt5.modifier.package1; 3 class ClassB extends ClassA { 4 5 void hello() { 6 System.out.println("Standardhallo von ClassB!"); 7 } 8 9 protected void protectedhello() { 10 System.out.println("Geschuetztes Hallo von ClassB!"); 11 } 1 13 public static void main(string[] args) { 14 ClassB b = new ClassB(); b.hello(); // Aufg. 5.1.a b.privatehello(); // Aufg. 5.1.a b.protectedhello(); // Aufg. 5.1.a b.publichello(); // Aufg. 5.1.a.08 0 } 1 } Listing : Quellcode von ClassB 1 package blatt5.modifier.package1; 3 public class ClassC extends ClassB { 4 5 private void privatehello() { 6 System.out.println("Privates Hallo von ClassC!"); 7 } 8 9 public static void main(string[] args) { 10 ClassC c = new ClassC(); 11 1 c.hello(); // Aufg. 5.1.a c.privatehello(); // Aufg. 5.1.a c.protectedhello(); // Aufg. 5.1.a c.publichello(); // Aufg. 5.1.a.1 16 } 17 } Listing 3: Quellcode von ClassC 1 package blatt5.modifier.package; 3 import blatt5.modifier.package1.classa; 4 5 public class ClassD extends ClassA { 6 public static void main(string[] args) { 7 ClassD d = new ClassD(); 8 9 d.hello(); // Aufg. 5.1.a d.privatehello(); // Aufg. 5.1.a d.protectedhello(); // Aufg. 5.1.a.15 1 d.publichello(); // Aufg. 5.1.a } 14 } Listing 4: Quellcode von ClassD 3

4 a) Geben Sie zu allen 16 Aufrufen entweder die resultierende Bildschirmausgabe an oder ob der Aufruf einen Fehler wegen nicht möglichen Zugriffs produziert. Hinweis: Achten Sie besonders auf die Vererbungshierarchie und die Packages! (8 P.) b) Wie im Quellcode ersichtlich, erbt die Klasse ClassC von ClassB. Angenommen, die Klasse ClassC hätte eine weitere Methode protectedhello() (siehe Listing ). Wie kann aus dieser neuen Methode heraus die Methode protectedhello() der Oberklasse ClassB zusätzlich aufgerufen werden, so dass die Bildschirmausgabe einen Gruß sowohl von ClassC als auch von ClassB enthält (s.u.)? Geben Sie den entsprechenden fehlenden Quelltext an. 1 protected void protectedhello(){ System.out.println("Geschuetztes Hallo von ClassC!"); 3 //Aufruf der Methode protectedhello von ClassB! 4 } Listing 5: Zu erweiternde Methode ClassC.protectedHello() Die Methode soll Folgendes ausgeben: Geschütztes Hallo von ClassC! Geschütztes Hallo von ClassB! 4

5 Aufgabe 5.: Finden von Programmierfehlern (13 Punkte) In dieser Aufgabe geht es darum, semantische und syntaktische Fehler in fremdem Quellcode zu finden. Dies ist eine typische Aufgabe für Entwickler, die mit anderen zusammen an einem gemeinsamen Projekt arbeiten. Hinweis: Symmetrische Fehler, also Fehler bei denen z.b. öffnende und schließende Klammern fehlen, zählen als ein einziger Fehler. Gegeben sei folgendes Programm, das natürliche Zahlen (N) verarbeiten soll: 1 public class Fehler Finden { 3 public static int gibkleinstes(int[] natuerlichezahlen) { 4 int kleinstes = -1; 5 for (int i = 0; i < natuerlichezahlen.length; i++) { 6 if (natuerlichezahlen[i] < kleinstes) { 7 kleinstes = natuerlichezahlen[i]; 8 } 9 } 10 return kleinstes; 11 } 1 13 public int gibgroesstes(int[] natzahlen) { 14 int i = 0; 15 int groesstes = -1; 16 for (int i = 0; i < natzahlen.length; i++) 17 if (natzahlen[i] > groesstes) { 18 groesstes = natzahlen[i]; 19 } 0 return ergebnis; 1 } 3 public static int[] konvertieretail(string[] stringarray) { 4 int[i] natuerlichezahlen = new int[stringarray.length - 1]; 5 for (int i = 0; i < stringarray.length - 1; i++) { 6 natuerlichezahlen[i] = Integer.parseInt(stringArray[i+1]); 7 } 8 // return natuerlichezahlen; 9 } public static main(string[] args) { 3 33 if (args.length < "3") 34 System.out.println("Zu wenig Parameter."); int reihenfolge = Integer.parseInt(args[0]); if (reihenfolge == 0) 39 System.out.print("Das kleinste Element ist: "); 40 System.out.println(gibKleinstes(konvertiereTail(args))); 41 else if (reihenfolge == 1) 4 System.out.print("Das groesste Element ist:"); 43 System.out.println(gibGroesstes(konvertiereTail(args))); 44 } 45 } a) Kennzeichnen Sie die 9 Fehler (im Quelltext oder durch Angabe der Zeilennummer), für die der Compiler einen Fehler anzeigt und machen Sie jeweils genau einen Korrekturvorschlag. Für jede richtige Verbesserung erhalten Sie einen Punkt. Für jeden von Ihnen (unbeabsichtigt) eingebauten Fehler wird Ihnen ein Punkt abgezogen. Die minimal erreichbare Punktzahl beträgt bei dieser Aufgabe 0 Punkte. (9 P.) 5

6 b) In Methode public static int gibkleinstes(int[] natuerlichezahlen) hat sich ein semantischer Fehler eingeschlichen. Was resultiert aus diesem Fehler? Geben Sie auch hier einen Lösungsvorschlag an. c) In der Main-Methode hat sich ebenfalls ein semantischer Fehler eingeschlichen. Was resultiert aus diesem Fehler? Geben Sie auch hier einen Lösungsvorschlag an. 6

7 Aufgabe 5.3: Objektorientierung (8 Punkte) Mit dieser Aufgabe soll zunächst die Definition und Verwendung von Objekten am Beispiel eines Obstkorbs eingeführt werden. Es werden mehrere Klassen in verschiedenen Packages erstellt, die dann in einem gemeinsamen Hauptprogramm verwendet werden. a) Modellierung von Obst. (i) Erstellen Sie im Package blatt5.obstkorb.fruechte die Schnittstelle (das Interface) Obst. (ii) Erstellen Sie eine von überall aus zugreifbare Methode gibpreis(), die keine Parameter erwartet und ein Ergebnis vom Typ double zurückgibt. b) Modellierung eines Apfels. (i) Erstellen Sie im Package blatt5.obstkorb.fruechte die Klasse Apfel. Die Klasse Apfel soll das Interface Obst implementieren. (ii) Erstellen Sie die privaten Parameter gewichtingramm und preisprokilo, die den Preis des Apfels bestimmen sollen. Dabei soll das Gewicht als Ganzzahl, der Preis als Fließkommazahl gespeichert werden. (iii) Erstellen Sie einen Konstruktor, der zwei Variablen zur Initialisierung dieser Parameter erwartet und diese damit initialisiert. c) Modellierung einer Kiwi. (4,5 P.) (i) Erstellen Sie im Package blatt5.obstkorb.fruechte die Klasse Kiwi. Die Klasse Kiwi soll das Interface Obst implementieren. (ii) Erstellen Sie den privaten Parameter stueckpreis. Der Stückpreis soll als Fließkommazahl gespeichert werden. (iii) Erstellen Sie einen Konstruktor, der eine Variable zur Initialisierung des Parameters erwartet und diesen damit initialisiert. (4 P.) 7

8 d) Modellierung eines Obstkorbs. (i) Erstellen Sie im Package blatt5.obstkorb.warenkorb die Klasse Einkaufskorb. (ii) Erstellen Sie einen Konstruktor, mit dem die Größe des Obstkorbs beim Aufruf individuell gesetzt werden kann. (iii) Erstellen Sie eine Methode namens legeinkorbhinein, mit der ein Stück Obst in den Korb gelegt werden kann, sofern dieser noch nicht vollständig gefüllt ist. Dabei sollen keine Obststücke verloren gehen, die bereits im Korb liegen. Falls noch Platz im Korb vorhanden ist, soll die Methode zusätzlich auf der Konsole ausgeben, dass das Hinzufügen erfolgreich war und true zurückgeben. Falls der Korb bereits voll ist, soll die Methode eine Fehlermeldung auf der Konsole ausgegeben und false zurückgeben. (iv) Erstellen Sie eine weitere Methode namens gibgesamtpreis, die den Gesamtpreis der Obsttücke im Korb berechnet und zurückgibt. (8 P.) e) Hauptprogramm. (i) Erstellen Sie im Package blatt5.obstkorb die Klasse Einkaufen, die als Hauptprogramm fungieren soll. (ii) Erzeugen Sie die main-methode als Einstiegspunkt für Ihr Programm. (iii) Erzeugen Sie einen großen Einkaufskorb namens grosserobstkorb, der Platz für 10 Obststücke bietet. (iv) Erzeugen Sie einen kleinen Einkaufskorb namens kleinerobstkorb, der Platz für Obststücke bietet. (v) Legen Sie einen Apfel und drei Kiwis in den großen Einkaufskorb und geben Sie den Gesamtpreis der Obststücke des Korbs auf der Konsole aus. (vi) Legen Sie einen Apfel und drei Kiwis in den kleinen Einkaufskorb und geben Sie den Gesamtpreis der Obststücke des Korbs auf der Konsole aus. (9,5 P.) 8

9 Aufgabe 5.4: Verkettete Listen (4 Punkte) Mit dieser Aufgabe soll die objektorientierte Entwicklung geübt und die Bedeutung und Einsatzgebiete von abstrakten Klassen und Interfaces demonstriert werden. Zu diesem Zweck sollen Sie eine verkettette Liste programmieren. Bei verketteten Listen handelt es sich um eine dynamische Datenstruktur, die (im Gegensatz zu Arrays) zur Laufzeit wachsen oder schrumpfen kann. Jedes Element der Liste besitzt neben den eigentlichen Nutzdaten (englisch Payload) auch eine Referenz auf sein Nachfolgeelement. Das erste Element wird auch als head, der Rest als tail bezeichnet. Head Tail Abbildung 1: Verkettete Liste a) Laden Sie sich die Grundgerüste zur Implementierung verketteter Listen von der ITM-Webseite herunter. Die Implementierung sieht vor, dass Listenelemente vom Typ MyLinkedListElement zum einen Nutzdaten und zum anderen eine Referenz auf ihre Nachfolger speichern. Die Nutzdaten können von einem beliebigen Datentyp sein. Die Referenz auf den Nachfolger ist dagegen logischerweise vom Typ MyLinkedListElement. Das letzte Element einer Liste besitzt keinen Nachfolger. Die Schnittstelle MyLinkedList enthält die Methodensignaturen, um eine verkettete Liste zu modifizieren und abzufragen. Das head-element ist das einzige Element, das direkt in MyLinkedListImpl referenziert wird. Das zweite Element der Liste kann über den Nachfolger des head-elements erreicht werden. Das letzte Element kann dadurch erreicht werden, dass man sich bei allen Elementen der Liste zum Nachfolger durchhangelt. (16 P.) (a) Erstellen Sie eine Klasse MyLinkedListImpl und realisieren Sie damit die Schnittstelle MyLinkedList. (b) Erstellen Sie die Klasse MyLinkedListElementImpl als Konkretisierung der abstrakten Klasse MyLinkedListElement (d.h. als eine Klasse, die von MyLinkedListElement erbt und selbst nicht abstrakt ist). 9

10 b) Nachdem Sie den ersten Aufgabenteil erfüllt haben, sollten Sie Ihre Implementierung testen. (4 P.) (i) Schreiben Sie hierfür eine Testklasse MyListTest mit einer Main-Methode. Instantiieren Sie in der Main-Methode zunächst ein Objekt der Klasse MyLinkedListImpl. (ii) Fügen Sie anschließend mittels prepend(object) die folgenden Ganzzahlen hinzu: 4, 7, 9, 1, 4, 4. Fügen Sie im Anschluss mittels append(object) die Ganzzahlen 1337, 0, 8, 15 hinzu. (iii) Löschen Sie mit Hilfe von remove(object) die Zahlen 4, 7, 9 und 1. Geben Sie die verbleibenden Zahlenwerte der Reihe nach auf der Kommandozeile aus. Beginnen Sie die Ausgabe mit dem head-element. (iv) Würde Ihre Implementierung auch die Verwendung von Strings als Nutzdaten erlauben? Begründen Sie Ihre Antwort. Hinweis: Vergleichen Sie die Objekt-Variablen nicht mit dem doppelten Gleichheitszeichen (==), sondern nutzen Sie die Methode equals(object). c) Welches Problem fällt Ihnen bei der Signatur und dem JavaDoc-Kommentar der Methode remove(object) auf? Machen Sie einen Verbesserungsvorschlag. d) Neben einfach verketteten Listen gibt es außerdem noch doppelt verkettete Listen. Doppelt verkettete Listen unterscheiden sich dadurch, dass die Listenelemente sowohl eine Referenz auf ihren Vorgänger als auch Nachfolger enthalten. Welche Vorteile können doppelt verkettete Listen gegenüber einfach verketteten Listen haben? 10

Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers <ebers@itm.uni-luebeck.de> Aufgabenblatt 6

Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers <ebers@itm.uni-luebeck.de> Aufgabenblatt 6 Übung zur Vorlesung Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Allgemeines Aufgabenblatt 6 Abgabe: 04.0.014, vor der Vorlesung (14:15 Uhr, AM 1) Max. Punktzahl:

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

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

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

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

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

PIWIN 1 Übung Blatt 5

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

Mehr

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

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

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

Einführung in die Programmierung, WS 14/15 Übungsleiter: Sebastian Ebers <ebers@itm.uni-luebeck.de> Aufgabenblatt 2

Einführung in die Programmierung, WS 14/15 Übungsleiter: Sebastian Ebers <ebers@itm.uni-luebeck.de> Aufgabenblatt 2 Übung zur Vorlesung Einführung in die Programmierung, WS 14/15 Übungsleiter: Sebastian Ebers Aufgabenblatt 2 Abgabe: 17.11.2014, vor der Vorlesung / Großübung (10:00 Uhr, AM

Mehr

Teil 1: Grundeigenschaften von Rechnern und Software

Teil 1: Grundeigenschaften von Rechnern und Software Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer

Mehr

Java Einführung Methoden in Klassen

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

Mehr

3 Objektorientierte Konzepte in Java

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

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

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

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 1 Prof. R. Westermann, A. Lehmann,

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

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

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

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1 Programmieren / Algorithmen und Datenstrukturen Autor: Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt Datum: 7. Oktober 200 Nachklausur Programmieren / Algorithmen und Datenstrukturen Spielregeln

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

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

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

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

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

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

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

Mehr

Ü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

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

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

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

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

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

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

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

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

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

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

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

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

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

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

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

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

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

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

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

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

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

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik Fachhochschule Kaiserslautern FB Informatik und Mikrosystemtechnik Prof. Dr. M. Duque-Antón Bachelor-Klausur im WiSe 2013 / 2014 im Fach Grundlagen der Informatik Angewandte Informatik / Medieninformatik

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

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung

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

Nachholklausur (9 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (9 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:30 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (9 ECTS) Einführung in die Informatik: Programmierung

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

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

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

Repetitorium Informatik (Java)

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

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

Mehr

Vorlesung Objektorientierte Programmierung Probeklausur

Vorlesung Objektorientierte Programmierung Probeklausur Prof. Dr. Stefan Brass 04. März 2013 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Probeklausur Name: Matrikelnummer: Studiengang:

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

Ü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

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

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

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Niemand bedauert diese Fehler mehr als der Autor selbst.

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

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

Musterlösungen zur Klausur Informatik 3

Musterlösungen zur Klausur Informatik 3 Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus

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

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

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

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

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

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

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

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

Mehr

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

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

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

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

Mehr