Generisches Programmieren

Größe: px
Ab Seite anzeigen:

Download "Generisches Programmieren"

Transkript

1 Generiche Programmieren homa Röfer Generiche Klaen und Interface Generiche ypen ypebound Wildcard-ypen Überetzung genericher Klaen Grenzen genericher ypen Polymorphe Methoden

2 Rückblick Vererbung Pakete java.lang.sytem.out.println("hallo") Paket Paket Klae ttribut Methode Vererbung Mehrfache Erben Speicherlayout uper fn1 fn2 fn3 Frühe/päte Binden btrakte Klaen / Schnitttellen uper fn1() fn1() fn1 fn2() fn2() fn2 B B extend extend fn2() fn2() fn3() fn3() : : a a (); (); a.fn1(); a.fn1(); b b B(); B(); b.fn1(); b.fn1(); b.fn2(); b.fn2(); b.fn3(); b.fn3(); // // Kompilierfehler! Kompilierfehler! abtract Geraet abtract Geraet int eriennummer; abtract int eriennummer; ein(); abtract ein(); interface Printable interface Printable print(); print(); PI-1: Generiche Programmieren 2

3 Motivation ; ; ( ( info info ( ( info info r; r; ; ; ; ; etinfo( etinfo( info info Problem: Zugriff nicht yp-icher! n1 n1 ("foo"); ("foo"); n2 n2 (3.14); (3.14); n0 n0 (23, (23, n1, n1, n2); n2); () () n1.; n1.; PI-1: Generiche Programmieren 3

4 Generiche Klaen Definition Generiche Klaen haben ypvariablen, die im Klaenrumpf verwendet werden können <> ypvariablen können (fat) wie ein normaler yp benutzt werden Mehrere ypvariablen ind möglich <> <> <> <> ; ; Pair<, Pair<, U> U> firt; firt; U U econd; econd; Pair( Pair( t, t, U U u) u) firt firt t; t; econd econd u; u; getfirt() getfirt() firt; firt; U U getsecond() getsecond() econd; econd; ( ( info info ( ( <> <> <> <> info info r; r; <> <> ; ; <> <> ; ; etinfo( etinfo( info info PI-1: Generiche Programmieren 4

5 Generiche ypen Generiche Interface Begriffe interface interface aggable<> aggable<> etag( etag( tag); tag); getag(); getag(); Eine generiche Klae it eine Klaendefinition, in der unbekannte ypen durch ypvariablen vertreten ind. Für generiche Interface gilt entprechende <> info Ein genericher yp it eine ypangabe, in der eine generiche Klae mit einem konkreten ypargument verehen wird <Integer> n <Integer>(23); implement implement aggable<> aggable<> tag; tag; public public etag( etag( t) t) tag tag t; t; public public getag() getag() tag; tag; Pair<Integer, > p Pair<Integer, >(28359, "Bremen"); PI-1: Generiche Programmieren 5

6 ypebound Motivation Manchmal ollen nicht alle ypen für die Belegung der ypvariablen zuläig ein, z.b. wenn e pezielle nforderungen an die ypargumente gibt Diee können durch ypebound fetgelegt werden < extend Number> Definition Ein ypebound bedeutet it kompatibel zu ypebound können Klaen und auch Interface ein uch bei Interface wird hier extend verwendet E kann mehrere ypebound pro ypvariable geben Sie werden durch & aufgezählt werden, z.b. < extend & B & C> Erter ypebound kann Klae oder Interface ein, weitere können nur Interface ein Ein ypebound legt die Mindetanforderungen für eine ypvariable fet Dadurch wird auch definiert, wa man von dieem yp an Funktionalität erwarten kann ypebound können wiederum die ypvariable enthalten < extend Comparable<>> PI-1: Generiche Programmieren 6

7 Wildcard-ypen Fragetellung Jede generiche Klae erzeugt viele generiche ypen <> erzeugt <Number>, <Integer>, <Double> Wie tehen die von einer generichen Klae erzeugten ypen zueinander? Vererbung genericher ypen Eine bleitungbeziehung zwichen ypargumenten überträgt ich nicht auf die generichen ypen <Number> n <Integer>(23); // Fehler! int int count(<?> count(<?> n) n) Die wird al Invarianz bezeichnet if(n if(n null) null) Generiche ypen können unbetimmte 0; 0; ele ypargumente nennen ele <?> nx; nx <>("foo"); + count(n.) count(n.) + nx <Integer>(1); + count(n.); count(n.); nx <Double>(3.14); Wildcard (Joke bei ypangaben PI-1: Generiche Programmieren 7

8 Covarianz genericher ypen Motivation Zu einem Wildcard-yp mit ypargument? ind alle generichen ypen der betreffenden generichen Klae kompatibel Manchmal möchte man die durch einen og. Upper-ypebound einchränken <? extend Number> nb; nb <Integer>(23); nb <>( ()); // Fehler! Definition Mit Upper-ypebound wird Covarianz für generiche ypen eröffnet llgemein gilt C<> it kompatibel zu C<? extend B>, wenn it kompatibel zu B Problem uch rray kennen Covarianz, aber tatiche ypprüfung veragt Number[ ] a Integer[23]; a[0] Double(3.14); // rraystoreexception Löung bei generichen ypen: nur Leen erlaubt <? extend Number> nb <Integer>(23); Number n nb.; nb.etinfo(3.14); // Fehler! PI-1: Generiche Programmieren 8

9 Contravarianz genericher ypen Motivation Zu einem Wildcard-yp mit ypargument? ind alle generichen ypen der betreffenden generichen Klae kompatibel Manchmal möchte man die durch einen og. Lower-ypebound einchränken <? uper Number> nb; nb <>( ()); nb <Integer>(23); // Fehler! Definition Mit Lower-ypebound wird Contavarianz für generiche ypen eröffnet llgemein gilt C<> it kompatibel zu C<? uper B>, wenn B it kompatibel zu Nur Schreibzugriff <? uper Number> nb <>( ()); nb.etinfo(1); Number n nb.; // Fehler! PI-1: Generiche Programmieren 9

10 Zuammenfaung Varianzen Invarianz Verchiedene generiche ypen ind zueinander inkompatibe unabhängig von der Kompatibilität ihrer ypargumente Bivarianz Wildcard-ypen ohne Einchränkung (C<?>) ind immer zueinander kompatibel Covarianz Zu Wildcard-ypen mit Upper-ypebound (C<? extend B>) ind alle generichen ypen kompatibe deren ypargument zu B kompatibel it Contravarianz Zu Wildcard-ypen mit Lower-ypebound (C<? uper B>) ind alle generichen ypen kompatibe zu deren ypargument B kompatibel it yp Leen Schreib. Kompatible ypargumente Invarianz C<> ja ja Bivarianz C<?> nein nein lle Covarianz C<? extend B> ja nein B und abgeleitete ypen Contravarianz C<? uper B> nein ja B und Baitypen PI-1: Generiche Programmieren 10

11 Überetzung genericher Klaen natz Generiche Datentypen werden in Java auchließlich vom Compiler verarbeitet Da Laufzeitytem weiß nicht von generichen Datentypen Überetzung Mit ype-eraure wird genericher Code mit ypvariablen und ypargumenten auf normalen, nicht-generichen Java-Quelltext reduziert Der nicht-generiche Java-Quelltext wird weiterverarbeitet wie biher u jeder generichen Klae wird eine nicht-generiche Klae generiert und in eine.-datei überetzt In C++ wird dagegen jede Intanziierung einer Klae mit ypargumenten getrennt überetzt Dadurch langamere Überetzen und größere Kompilate, aber beere Optimierungmöglichkeiten und weniger Einchränkungen PI-1: Generiche Programmieren 11

12 ype-eraure Bei der ype-eraure genericher Klaen werden yp-variablen in pitzen Klammern gelöcht Vorkommen von ypvariablen mit einem oder mehreren ypebound durch den einzigen bzw. erten ypebound eretzt Vorkommen von ypvariablen ohne ypebound durch eretzt Bei der ype-eraure der Verwendung genericher Klaen werden die yp-korrektheit tatich geprüft (d.h. zum Überetzungzeitpunkt) ypargumente müen allen ypebound genügen generiche ypen müen auch untereinander korrekt verwendet werden, inbeondere bei Wildcard-ypen ypargumente, einchließlich Wildcard, in pitzen Klammern gelöcht ypecat eingechoben, wo der Wert eine ypargument benutzt wird PI-1: Generiche Programmieren 12

13 ype-eraure Beipiel <> <> <> <> ; ; Generiche Klae ( ( info info ( ( <> <> <> <> info info r; r; <> <> ; ; <> <> ; ; etinfo( etinfo( info info <> <> n n <>("foo"); <>("foo"); n.; n.; ; ; Nach ype-eraure (Rawtype) ( ( info info ( ( info info r; r; ; ; ; ; etinfo( etinfo( info info n n ("foo"); ("foo"); () () n.; n.; PI-1: Generiche Programmieren 13

14 ype-eraure Beipiel <> <> <> <> ; ; Generiche Klae ( ( info info ( ( <> <> <> <> info info r; r; <> Rawtype <> laen ich auch ; ; <> direkt <> benutzen, aber die ; ; ypicherheit etinfo( etinfo( geht info verloren info (Compiler-Warnung) <> <> n n <>("foo"); <>("foo"); n.; n.; ; ; Nach ype-eraure (Rawtype) ( ( info info ( ( info info r; r; ; ; ; ; etinfo( etinfo( info info n n ("foo"); ("foo"); () () n.; n.; PI-1: Generiche Programmieren 14

15 Grenzen genericher ypen (1) Primitive ypargumente <int> ni <int>(23); // Fehler! ber: <Integer> ni <Integer>(23); // utoboxing Statiche Elemente Broken<> tatic data; // Fehler! Grund: lle Klaen Broken<> teilen ich da Klaenattribut data. Welchen yp oll e haben? Dynamiche ypprüfung <> boolean icompatible( o) o intanceof ; // Fehler! ype-eraure: o intanceof o intanceof ypecat <> etinfo( o) info () o; // Sinnlo ype-eraure: () o () o Compiler erzeugt: warning: unchecked cat of type PI-1: Generiche Programmieren 15

16 Grenzen genericher ypen (2) Kontruktoraufrufe <> () info (); // Fehler Woher oll Java wien, da einen Standard-Kontruktor hat? Beipiel: <Integer> ni <Integer>(); uweg: <> ( info <Integer> ni <Integer>(23); Generiche Baitypen import java.util.date; imetamped<> extend Date timetamp Date(); // Fehler Generiche Klae mu Kontruktor der Baiklae aufrufen können. Dieer kann hier aber nicht zur Kompilierzeit ermittelt werden! Exception UniveralException<> extend Exception reaon; // Fehler Generiche ypen können nicht für Exception verwendet werden, da da Fangen mit catch auf dem Ermitteln de yp de geworfenen Objekt baiert. Dieer geht aber bei der ype-eraure verloren. Compiler erzeugt: a generic may not extend java.lang.hrowable PI-1: Generiche Programmieren 16

17 Grenzen genericher ypen (3) rray von ypvariablen Container<> [] a [100]; uweg: Container<> [] a ([]) [100]; // Warnung Compiler erzeugt ue unchecked or unafe operation Man kann trotzdem typichere Klaen ertellen: Container<> Container<> [] [] a a ([]) ([]) [100]; [100]; // // Warnung Warnung et(int et(int t) t) a[i] a[i] t; t; get(int get(int a[i]; a[i]; PI-1: Generiche Programmieren 17

18 Generiche (polymorphe) Methoden Definition Polymorphe Methoden ind unabhängig von generichen ypen Sie können auch in nicht-generichen Klaen definiert werden Klaen- und Objektmethoden owie Kontruktoren können polymorph ein ufruf thi.<>vote("foo", "foo","bar"); int i thi.<integer>vote(1,2,2); thi.<>vote(1,2,2); // Fehler! yp-inferenz vote("foo", "foo","bar"); <> <> vote( vote( x, x, y, y, z) z) if(x.equal(y)) if(x.equal(y)) x; x; ele ele if(y.equal(z)) if(y.equal(z)) y; y; ele ele if(z.equal(x)) if(z.equal(x)) z; z; ele ele nul nul ypparameter werden automatich mit dem unterten gemeinamen yp belegt Double d vote(1, 3.14, 1); // Fehler! entpricht Double d vote( Integer(1), Double(3.14), Integer(1)); // Fehler! Number n vote(1, 3.14, 1); // ok PI-1: Generiche Programmieren 18

19 Funktionen höherer Ordnung Definition Funktionen höherer Ordnung bekommen elbt Funktionen al Parameter In Java ind Funktionen al Parameter nicht möglich, wohl aber Objekte von Klaen, die betimmte Interface implementieren Beipiel: Faltung Eine Faltung faltet eine Lite (oder ein rray) zu einem einzigen Wert zuammen Dazu wird eine binäre Funktion der Reihe nach auf alle Elemente angewendet In Hakell: foldl (+) 0 [1,2,3,4,5] ((((0 + 1) + 2) + 3) + 4) + 5 interface interface FoldlFn<, FoldlFn<, B> B> fn( fn( a, a, B B b); b); <, <, B> B> foldl(foldlfn<, foldl(foldlfn<, B> B> f, f, a, a, B[] B[] b) b) for(b for(b b0 b0 : : b) b) a a f.fn(a, f.fn(a, b0); b0); a; a; concat([] concat([] object) object) foldl( foldl( FoldlFn<, FoldlFn<, >() >() public public fn( fn(,, o) o) + + o.to(); o.to();,, "", "", object); object); PI-1: Generiche Programmieren 19

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale

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

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

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Java Generics & Collections

Java Generics & Collections Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes

Mehr

Statistische Analyse von Messergebnissen

Statistische Analyse von Messergebnissen Da virtuelle Bildungnetzwerk für Textilberufe Statitiche Analye von Meergebnien 3 Hochchule Niederrhein Stand: 17..3 Seite 1 / 8 Im Abchnitt "Grundlagen der Statitik" wurde u.a. bechrieben, wie nach der

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

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification Generische Typen in Java 1.5 - Seminarvortrag 1/26 Generische Typen in Java 1.5 Die Erweiterung der Java Language Specification Seminarvortrag von Heiko Minning, mi3795 bei Prof. Dr. Uwe Schmidt, FH-Wedel

Mehr

Kundeninformationen zu Secure Mail

Kundeninformationen zu Secure Mail Kreiparkae Trauntein-Trotberg -1- Kreiparkae Trauntein-Trotberg Allgemeine Kaum einer macht ich beim Verenden einer E-Mail Gedanken über die Sicherheit. Dabei it eine normale E- Mail ungefähr o icher und

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

Brustkrebs. Genetische Ursachen, erhöhte Risiken. Informationen über familiär bedingten Brust- & Eierstockkrebs

Brustkrebs. Genetische Ursachen, erhöhte Risiken. Informationen über familiär bedingten Brust- & Eierstockkrebs Brutkreb Genetiche Urachen, erhöhte Riiken Informationen über familiär bedingten Brut- & Eiertockkreb Brutkreb: Wie und wo er entteht Wenn bei der Zellteilung ein Fehler paiert Alle Zellen unere Körper

Mehr

A(T1) A(T2) A(T1) A(T2)

A(T1) A(T2) A(T1) A(T2) Kovarianz und Kontravarianz in Java Abstract In diesem Artikel werden die Java-Regeln für Kovarianz und Kontravarianz zusammengefasst. Hierzu wird Typkompatibilität definiert und die Fälle untersucht,

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

Java I Vorlesung Generics und Packages

Java I Vorlesung Generics und Packages Java I Vorlesung 9 Generics und Packages 21.6.2004 Generics Packages Qualifizierte Namen Mehr zu Zugriffsklassen Generics (Java 1.5) Die Klassen im Java Collections Framework sind mit dem Typ ihrer Elemente

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

Einfacher loop-shaping Entwurf

Einfacher loop-shaping Entwurf Intitut für Sytemtheorie technicher Prozee Univerität Stuttgart Prof. Dr.-Ing. F. Allgöwer 6.4.24 Regelungtechnik I Loophaping-Entwurf t http://www.it.uni-tuttgart.de/education/coure/rti/ Einfacher loop-haping

Mehr

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal

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

Inhalt. Vision ME Benutzerhandbuch s

Inhalt. Vision ME Benutzerhandbuch s Benutzerhandbuch Inhalt 1. Einleitung...2 1.1. Automatiche Anmeldung bei Viion ME...2 2. Schüler dazu einladen, einer Klae beizutreten...3 2.1. Schüler in der Klae anzeigen...6 2.2. Die App au Schülericht...7

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

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

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Lehreinheit 09 Prozesssimulation II: Prozesssimulation mit einfachen Petri-Netzen Wintersemester 2012/2013

Lehreinheit 09 Prozesssimulation II: Prozesssimulation mit einfachen Petri-Netzen Wintersemester 2012/2013 Dynamiche Unternehmenmodellierung und -imulation (ehemal: Buine Dynamic - Dynamiche Modellierung und Simulation komplexer Gechäftyteme, Arbeitwienchaft V) Lehreinheit 09 Prozeimulation : Prozeimulation

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

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

1. Grundlegende Konzepte in Java (6 Punkte)

1. Grundlegende Konzepte in Java (6 Punkte) 1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt

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

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

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

banking n So funktioniert es am iphone & ipad best banking: Welche Infrastruktur stellt Smart Engine zur Verfügung?

banking n So funktioniert es am iphone & ipad best banking: Welche Infrastruktur stellt Smart Engine zur Verfügung? banking KundenbindungOnline-Vergleich- und Einkaufmöglichkeiten verändern da längt und ucht nach effizienten Kundenzugängen. Smart Managing Partner von Smart Engine, die zahlreichen Vorteile bet banking:

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

Fortgeschrittene Programmierung

Fortgeschrittene Programmierung Skript zur Vorlesung Fortgeschrittene Programmierung SS 2014 Prof. Dr. Michael Hanus Priv.Doz. Dr. Frank Huch Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion Institut für Informatik Christian-Albrechts-Universität

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

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

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

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

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

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

Technische Universität München. Fakultät für Informatik

Technische Universität München. Fakultät für Informatik Techniche Univerität München Fakultät für Informatik Forchung- und Lehreinheit Informatik IX Thema: Morphologiche Operationen Proeminar: Grundlagen Bildvertehen/Bildgetaltung Johanne Michael Kohl Betreuer:

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

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

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Java für Computerlinguisten

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

Mehr

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

Primitive Datentypen und Felder (Arrays)

Primitive Datentypen und Felder (Arrays) Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste

Mehr

Geometrie-Dossier Symmetrie in der Ebene

Geometrie-Dossier Symmetrie in der Ebene Geometrie-oier Symmetrie in der Ebene Name: Inhalt: Symmetrieeienchaft und bbildun: eriffe chenymmetrie und Geradenpieelun rehymmetrie und rehun Punktymmetrie und Punktpieelun Verwendun: iee Geometriedoier

Mehr

Versuch 16 (früher I9) Aufbauten 16/36 (früher I7a/I7b) Logikschaltungen mit dem Bipolartransistor

Versuch 16 (früher I9) Aufbauten 16/36 (früher I7a/I7b) Logikschaltungen mit dem Bipolartransistor Hochchule Augburg Veruch 16 (früher I9) Aufbauten 16/36 (früher I7a/I7b) Logikchaltungen mit dem Bipolartranitor Phyikaliche Praktikum Die Funktionweie von Bipolartranitoren ollte vor Veruch 9 im Theorieteil

Mehr

Java Einführung Vererbung und Polymorphie. Kapitel 13

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

Mehr

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

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

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

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

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

Themen der Übung. Rekursion. Dateien einlesen Sudokus. Assertions

Themen der Übung. Rekursion. Dateien einlesen Sudokus. Assertions Themen der Übung Rekurion CoMa-Übung X TU Berlin.0.0 Themen heute Evaluation Aertion Einleen von Dateien Queue und Breitenuche Rekurion Wegrekontruktion Tiefenuche Backtracking Evaluation Diee Woche bekommt

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

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

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

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

12) Generische Datenstrukturen

12) Generische Datenstrukturen 12) Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 09-0.2, 24.11.08 Softwaretechnologie, Prof. Uwe Aßmann 1 mpfohlene

Mehr

Programmieren 2 Java Überblick

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

Mehr

Vier-Felder-Tafel. Medizinische Tests sind grundsätzlich mit zwei Fehlern behaftet: 1. Erkrankte werden als gesund, 2. Gesunde als krank eingestuft.

Vier-Felder-Tafel. Medizinische Tests sind grundsätzlich mit zwei Fehlern behaftet: 1. Erkrankte werden als gesund, 2. Gesunde als krank eingestuft. Vier-Felder-Tafel Mediziniche Tet ind grundätzlich mit zwei Fehlern behaftet:. Erkrankte werden al geund, 2. Geunde al krank eingetuft. Der. Fehler wird üblicherweie (nicht nur von Tet-Entwicklern) in

Mehr

7. Reglerentwurf im Frequenzbereich

7. Reglerentwurf im Frequenzbereich H A K O 7 Reglerentwurf im Frequenzbereich In dieem Kapitel werden zwei unterchiedliche Reglerentwurfverfahren im Frequenzbereich dikutiert Da o genannte Frequenzkennlinienverfahren it auf Regelkreie mit

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

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

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

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

Mehr

Kapitel 8. Generische Klassen

Kapitel 8. Generische Klassen Kapitel 8 Generische Klassen Ziel: Zusammensetzen von Software-Bausteinen Oft probiert, nie erreicht! sprachliche Mittel fehlten In C++, ADA, Eiffel, Java: Klassen, die mit anderen Klassen parametrisiert

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

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

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

Mehr

Test für medizinische Studiengänge II Originalversion II des TMS. 5. aktualisierte Auflage 2008 Hogrefe Verlag ISBN: 978-3-8017-2169-5

Test für medizinische Studiengänge II Originalversion II des TMS. 5. aktualisierte Auflage 2008 Hogrefe Verlag ISBN: 978-3-8017-2169-5 Löunwee und Erklärunen für die Aufaben 7-96 ( Quantitative und formale Probleme ) Seite - 55 de Übunbuche Tet für mediziniche Studienäne II Oriinalverion II de TMS 5. aktualiierte Auflae 008 Horefe Verla

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

Anleitung. zur. Konfiguration. des. WLAN Repeaters

Anleitung. zur. Konfiguration. des. WLAN Repeaters Anleitung zur Konfiguration de WLAN Repeater (Art. Nr. SD-REP-2 ) Stand: 06.06.07 Inhaltverzeichni. Eintellungen WLAN Router. Einloggen WLAN Router.2 IP-Eintellungen WLAN-Router.3 Kanal WLAN-Router.4 WLAN

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

Design by Contract with JML

Design by Contract with JML Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

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

Mechanik 2. Addition von Geschwindigkeiten 1

Mechanik 2. Addition von Geschwindigkeiten 1 Mechanik. Addition on Gechwindigkeiten 1. Addition on Gechwindigkeiten Wa beeinflut die Gechwindigkeit de Boote? a. Wind b. Waergechwindigkeit Haben beide die gleiche Richtung, o addieren ie ich. Haben

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Nach der Bearbeitung dieses Kapitels soll der Leser in der Lage sein,

Nach der Bearbeitung dieses Kapitels soll der Leser in der Lage sein, 3 1 Einführung Nach der Bearbeitung diee Kapitel oll der Leer in der Lage ein, die Funktionen Invetition und Finanzierung in die Geamtheit der Betriebwirtchaftlehre einzuordnen, ihre Bedeutung für die

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 15 Java API Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte von Betriebssystem-Komponenten Middleware RMI Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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

Mehr

Wertsteigerung Frei Haus. Der Kostenlose Glasfaseranschluss für Hauseigentümer.

Wertsteigerung Frei Haus. Der Kostenlose Glasfaseranschluss für Hauseigentümer. Wertteigerung Frei Hau. Der Kotenloe Glafaeranchlu für Haueigentümer. Darüber freuen ich nicht nur Ihre Mieter. 40 Millimeter, 1.000 Vorteile. Im Bereich der Kommunikation it Glafaer die Zukunft. 12.000

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

1 Fehler-Objekte: Werfen, Fangen, Behandeln

1 Fehler-Objekte: Werfen, Fangen, Behandeln 1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

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

1 Abstrakte Klassen, finale Klassen und Interfaces

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

Mehr

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

Protokoll zur Laborübung Verfahrenstechnik. Übung: Filtration. Betreuer: Dr. Gerd Mauschitz. Durchgeführt von:

Protokoll zur Laborübung Verfahrenstechnik. Übung: Filtration. Betreuer: Dr. Gerd Mauschitz. Durchgeführt von: Protokoll zur Laborübung Verahrentechnik Übung: Filtration Betreuer: Dr. Gerd Mauchitz Durchgeührt von: Marion Pucher Mtk.Nr.:015440 Kennzahl: S6 Mtk.Nr.:015435 Kennzahl: S9 Datum der Übung:.06.004 1/11

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

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