Nachgehakt - String Vergleich

Größe: px
Ab Seite anzeigen:

Download "Nachgehakt - String Vergleich"

Transkript

1 Nachgehakt - String Vergleich int a=1, b=1; String x= abc, y= abc ; if(a==b) if(x==y) if(x.equals(y)) Geht nur manchmal! 1

2 Nachgehakt - Bestimmte Schleifen (for) for (x=0; x!=10; x+=0.01) {. Ausprobiert?!? 2

3 Teil 7 - Java Collections Framework 3

4 Java Collections Framework Im Package java.util enthalten. Übersicht: java.sun.com/j2se/1.5.0/docs/guide/collections/index.html Collection Map List Set SortedMap SortedSet 4 Weitere Datenstrukturen:

5 Java Collections Framework Set: Menge ohne Duplikate List: Jedes Element hat einen Index Map: Jedes Element hat einen Schlüssel Für uns wichtig: HashMap und ArrayList 5

6 Übersicht Collections Framework Quelle: TIJ3 Bruce Eckel 6

7 Java Collections Framework Definiert Collections von Objekten, die über einheitliche Schnittstellen manipuliert werden können. Implementiert Datenstrukturen und Algorithmen. Beispiel: Durchgehen einer ArrayList List list = new ArrayList(); list.add("hello"); list.add("world"); for (Iterator i = list.iterator(); i.hasnext();){ System.out.println(i.next()); 7

8 Java Collections Framework Beispiel: Sortieren einer ArrayList List list = new ArrayList(); list.add("b"); list.add("a"); list.add("c"); Collections.sort(list); System.out.println(list); /* hier wird tostring() aufgerufen von java.lang.objekt bzw. von java.util.abstractcollection */ 8

9 Java Collections Framework Beispiel: Map (Wörterbuch) Zuordnung von Elementen zu Schlüsseln. Map map = new HashMap(); map.put(2, "Hello"); map.put(4, "World"); System.out.println(m.size()); System.out.println(m.get(4)); 9

10 Java 1.5. Generics Beispiel: Map (Wörterbuch) Zuordnung von Elementen zu Schlüsseln. Jetzt ist aber der Typ vorgegeben! Map<Integer,String> m = new HashMap<Integer,String>(); map.put(2, "Hello"); 10

11 ENUM Die Atribute des Aufzählungstyps enum bestehen aus einer festen Menge von Konstanten. ZugriffsSpezifikator enum Bezeichner {Wert1, Wert2,...; enum-aufzählungen sind Klassen enum-aufzählungen erben von der Klasse java.lang.enum enum Aufzählungen sind standardmäßig final 11

12 ENUM - Beispiel public class Ausgabe { public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY public static void main(string[] args){ System.out.println(Day.MONDAY); 12

13 Teil 8 - Java Vererbung Schnittstellen Polymorphie 13

14 Erinnerung: Beispiel für Vererbung Kraftfahrzeug Typ, Farbe, kmh beschleunigen() bremsen() Omnibus Stehplätze PKW LKW anhängen() Limousine Cabriolet Verdeck öffnen() Cabriolet und Limousine können zusätzliche Methoden bzw. Attribute haben. Beide erben alle Merkmale von PKW und damit auch von Kraftfahrzeug. 14

15 Mehrfachvererbung (Multiple Inheritance) In manchen objektorientierten Programmiersprachen (C++, Smalltalk usw.) kann eine Klasse mehrere direkte Oberklassen haben (Mehrfachvererbung) gute Modellierung mancher realen Gegebenheiten: 15

16 Vererbung Die Methoden (Prozeduren/Funktionen) der Elternklasse können beibehalten, modifiziert oder überschrieben werden, müssen aber denselben Rückgabetyp haben. In Java darf eine Klasse nur eine direkte Elternklasse haben Einfachvererbung. Mehrfachvererbung nur durch Schnittstellen realisierbar (siehe später). 16

17 Vererbung Syntax Syntax: ZugriffsSpezifikator class NameDerKlasse extends Oberklasse { // erbt automatisch alle Attribute und // Methoden der Oberklasse 17

18 Vererbung - Zugriffsrechte Klassen die final sind, dürfen nicht vererbt werden. Attribute/Methoden die protected oder public sind, können vererbt werden. Beachte: Attribute/Methoden die protected sind, sind ohne Vererbung nicht sichtbar. 18

19 this und super super: Ermöglicht den Zugriff auf die Methoden der Oberklasse. this: Zeigt auf das aktuelle Objekt. Beispiel: public class Student extends Person { private int semester; public int getsemester() { return this.semester; public void incrementage() { super.incrementage(); //Aufruf der Methode in Person if (this.getsemester() > 8) System.out.println( Achtung, Studiengebühren werden fällig!"); 19

20 Casting Bei der Deklaration eines Objektes wird die entsprechende Klasse, zu der es gehört, angegeben. Es ist möglich dieses Objekt in ein Objekt einer Oberklasse zu verwandeln, z.b.: Student s = new Student(4); Person p = (Person)s; Diesen Vorgang nennt man casting. Ist das sinnvoll? Zu den primitiven Datentypen (siehe spätere Folie) existieren Regeln, welchen Typ man in welchen umformen kann. 20

21 instanceof Mit instanceof kann die Klassenzugehörigkeit geprüft werden.... Object o = xyz.get(); if (o instanceof Student) int i = ((Student)o).getAge();... Beachte: Ein Objekt ist immer auch Element seiner Oberklassen. 21

22 Schnittstellen (Interfaces) Interfaces enthalten nur die "Signaturen" von Methoden. Statt der Definition des Methoden- Inhalts zwischen { und enthalten sie nur ein Semikolon: interface InterfaceName { void methode1(parameterliste) ; 22

23 Schnittstellen (Interfaces) Wofür: Trennung von Spezifikation und Realisierung (wie bei ArrayList, LinkedList, ) Definition der Interaktion zwischen Komponenten Um Probleme bei der Mehrfachvererbung zu umgehen, gibt es in Java die eingeschränkte Mehrfachvererbung durch Schnittstellen. 23

24 Anzahl der Personen in Modernisierungs-Projekten Persons involved (on average during the duration time) 4-5 Persons 20% 6-10 Persons 19% Persons 24% 3 Persons 12% 2 Persons 11% 1 Person 2% above 50 Persons 12% *Quelle: MOMOCS Consortium - Modernization Project Evaluation 24

25 Schnittstellen (Interfaces) Die Klasse, die dieses Interface implementiert, muss alle darin skizzierten Methoden enthalten, mit der richtigen Signatur (Typ, Name und Parameterliste) und mit einem konkreten Block von Statements: class ClassName implements InterfaceName {... void methode1 (parameterliste) {... // Statements; die Klasse kann weitere Methoden, die nicht im Interface enthalten sind besitzen! 25

26 Abstrakte Klassen Eine Exemplarmethode heißt abstract, wenn sie keinen Rumpfinhalt hat, d.h. wenn nur Ihr Kopf (Signatur), nicht aber eine Implementation angegeben wird. Der Konstruktor einer abstrakten Klasse kann nicht aufgerufen werden, d.h. es kann kein Exemplar erzeugt werden. Ein Klasse, die mindestens eine abstrakte Methode erbt und diese nicht implementiert, ist zwangsläufig abstrakt. 26

27 Beispiel Abstract Class public abstract class Person { String name; public Person(String name) { this.name = name; public abstract String getname(); protected void setname(string name) { this.name = name; 27

28 Unterschied Interface Abstrakte Klasse Interface == keine Implementierung, alles abstrakt Abstrakte Klasse == kann Implementierung enthalten Abstrakt Klassen, die keine Implementierung enthalten sollten als Interface deklariert werden. beide können nicht instanziiert werden! 28

29 Innere Klassen class Haus { String s = "Haus"; public static void main(string[] args) { Haus h1 = new Haus(); Zimmer z1 = h1.new Zimmer(); Zimmer z2 = new Haus().new Zimmer(); // in 1er Zeile class Zimmer { String s = "Zimmer"; 29

30 Übungs-Aufgabe class A{ public void foo(){ System.out.println("A"); class B extends A { public void foo(){ System.out.println("B"); public static void main(string[] args){ A aobject = new B(); aobject.foo(); AUSGABE: B 30

31 Übungs-Aufgabe class A{ public A(){ super(); System.out.println("A erzeugt"); AUSGABE: A erzeugt B erzeugt public class B extends A{ public B(){ System.out.println("B erzeugt"); super() in class A redundant public class Test{ public static void main(string[] args){ A aobject = new B(); 31

32 Polymorphie in der Natur Das Pantherchamäleon Das Chamäleon ändert seine Farbe in Abhängigkeit seiner Stimmung. Ärger Es hat eine andere Farbe, ist aber immer noch dasselbe Individuum. 32

33 Polymorphie in der Evolutionstheorie It is not the strongest of the species that survives, nor the most intelligent, but rather the one most responsive to change. Charles Darwin 33

34 Polymorphie Die Fähigkeit eines Objektes zu entscheiden, welche Methode auf sich selbst anzuwenden ist, bezeichnet man als Polymorphie in der Objektorientierung. Das Objekt kann auf eigene Weise auf den Aufruf einer Methode reagieren. 34

35 Beispiel Polymorphie Die Polymorphie bei Methoden heißt Überladen. Vorteile des Überladens einer Methode sinnvoll, wenn mehrere Methoden dasselbe Ergebnis erzielen sollen, aufgrund des Eingabetyps aber unterschiedliche Implementierungen benötigen. Im Programmquellcode entfällt dadurch die umständliche Typabfrage und die anschließende Fallunterscheidung. Bei der Programmierung ist darauf zu achten, dass Methoden mit gleichem Namen inhaltlich zusammenpassen. 35

36 Überschreiben von Methoden In einer Unterklasse darf eine Methode mit gleichem Namen und gleicher Signatur wie in einer Oberklasse definiert werden. Überschreiben (Overwriting) Wichtig: Unterscheidung zum Überladen: (vgl. Beispiel Geometrische Objekte ) - gemeinsame Oberklasse - unterschiedliche Klassennamen Unterklasse1 methodex() Oberklassenmethode geht in der Unterklasse verloren (In Java durch das Keyword super noch zugreifbar!) Oberklasse methodex()... 36

37 Überschreiben von Methoden Bsp. Fahrzeug kmh: int sitzplaetze: int fahren() plaetze_anzeigen() Omnibus stehplaetze: int plaetze_anzeigen()... Die Unterklasse Omnibus erbt alle Attribute und Methoden der Oberklasse Fahrzeug. Zusätzlich erhält die Unterklasse Omnibus das Attribut stehplaetze. Die Methode plaetze_anzeigen() der Oberklasse Fahrzeug wird in der Unterklasse Omnibus durch eine neue Version überschrieben. 37

38 Auch Polymorphie Beispiel Late Binding in Java: GeoObjekt Bei final-methoden kann der Compiler Early Binding verwenden! Kreis radius berechneflaeche() Rechteck laenge breite berechneflaeche() Klasse von geometrischen Formen GeoObjekt Unterklassen Rechteck und Kreis, jeweils mit einer Methode zur Flächenberechnung berechneflaeche() unterschiedliche Berechungsvorschriften aber gleich benannte Methoden 38

39 Teil 9 - Java Ausnahmen 39

40 Exceptions - Grundlagen Es gibt außergewöhnliche Bedingungen, die es nicht gestatten im Code normal fortzufahren, z.b. wenn man auf eine Datei zugreifen möchte, die nicht existiert. Ausnahmen (Exceptions) unter Java bieten einen Mechanismus zur strukturierten, flexiblen Behandlung von Fehlern, die während der Laufzeit eines Programmes (Runtime Error) auftreten können. 40

41 Exceptions - Fehlerarten mögliche Fehlerarten zur Laufzeit: Eingabefehler (durch Benutzer) Gerätefehler physikalische Grenzen Codefehler (z.b. ArrayIndex) 41

42 Exceptions - Ablauf Gegeben: Ein Laufzeitfehler löst eine Exception aus (vom System oder vom Entwickler). Entweder Behandlung durch den Programmteil, in dem sie ausgelöst wurde oder weitergeben. Beim Weitergeben hat nun der Empfänger die Möglichkeit sie zu behandeln oder ebenfalls weiterzugeben. Wird die Exception von keinem Programmteil behandelt, führt dies zum Abbruch des Programms (mit entsprechender Fehlermeldung)! 42

43 Exceptions - throwing In manchen Fällen sind die Ausnahmen bereits vorgesehen. Die entsprechenden Methoden enthalten dann eine throws-klausel. throwing = Auslösen der Ausnahme (werfen, schmeißen). Beispiel: void read() throws IOException { throw new IOException( Datei nicht gefunden! ); 43

44 Exceptions - catching Will man solche Methoden (die Exceptions werfen) verwenden, muss die eventuelle Ausnahme abgefangen und die Behandlung implementiert werden. Alternativ kann die Exception einfach weiter gereicht werden mit throws. catching = Behandeln der Ausnahme (Abfangen und Reaktion). Beispiel:... try { read(); catch (IOException e) {... // im Falle einer Ausnahme 44

45 Exceptions - catching In Java übernimmt der try-catch-block die Fehlerbehandlung. Er umgibt den Bereich, in dem der Fehler auftreten könnte. Tritt im try-block ein Fehler auf, wird dieser sofort verlassen (alle weiteren Anweisung werden nicht ausgeführt!) und es wird in den ersten catch-block gesprungen. Falls dieser die Exception nicht abfängt, wird weiter in den nächsten catch-block gesprungen, usw... 45

46 Exceptions - catching Beispiel: Mehrere catch-blöcke (Reihenfolge beachten) try { Anweisung1; catch (Ausnahmetyp1 ex1) { Anweisung2; catch (Ausnahmetyp2 ex2) { Anweisung3; 46

47 Exceptions - catching der finally-block ist optional, folgt nach dem letzten catch-block und wird immer ausgeführt!!! Insbesondere: wenn das normale Ende des try-blocks erreicht wurde (ohne Fehler), wenn eine Exception aufgetreten ist, egal ob sie durch einen catch-block behandelt wurde oder nicht, wenn der try-block durch break, continue oder return verlassen wurde. 47

48 Exceptions - catching Beispiel: try-catch mit finally-block try { Anweisung1; catch (Ausnahmetyp1 ex1) { finally { Anweisung2; 48

49 Exceptions - catching Der finally-block kann somit verwendet werden, um Aufräumarbeiten durchzuführen! Zum Beispiel um Dateien zu schließen oder andere Ressourcen freizugeben. 49

50 Exception Weitergabe Statt eine Exception zu behandeln, kann man sie an die aufrufende Methode weitergeben: einfach die try-catch-klausel weggelassen und an den Methodenkopf die Exceptions mit throws anhängen (durch Komma getrennt), die nicht behandelt werden sollen. 50

51 Exception Weitergabe Beispiel:... public void dbausgabe() throws SQLException {... ResultSet ergebnis = stat.executequery("select * FROM kunden WHERE nachname='schmidt'");... 51

52 Exception Behandlung und dann kann die aufrufende Methode die Exception z.b. behandeln. Beispiel von vorheriger Folie:... try { dbausgabe(); // Ausführung von SELECT catch (SQLException ex) { System.out.println("DB-Fehler beim Lesen!");... 52

53 Exception Klassen (API) Throwable Exception Error IOException RuntimeException 53

54 Exception Klassen (API) einige wichtige Ausnahmetypen RuntimeException: ArithmeticException (Division durch 0) ArrayIndexOutOfBoundsException NullPointerException IOException: FileNotFoundException Error: VirtualMachineError Exception: ClassNotFoundException 54

55 Exception Klassen (API) Für die Standard-Java-Klassen kann man in der API nachlesen, ob für eine bestimmte Methode eine Exception behandelt werden muß. Der Compiler gibt eine Fehlermeldung aus, falls eine Exception nicht behandelt wird (catch-or-throw). 55

56 Exception Klassen (API) Ausnahmen von der catch-or-throw-regel sind alle Klassen, die von RuntimeException erben bzw. RuntimeException selbst. Beispiel: Gleitkommadivision durch Null Überlauf Mathematische Fehler Diese Exceptions können, müssen aber nicht behandelt werden! Fehler-Handling würde sonst zu groß werden. 56

57 Exception Behandlung Beispiel: Diese Methode testet, ob ein String in einen Integer umwandelbar ist. public boolean isinteger(string s){ if ( (s == null) (s.equals("")) ) { return false; else { try { Integer test = new Integer(s); catch (NumberFormatException ex) { return false; return true; 57

58 Exceptions Besonderheiten Mathematische Fehler Exceptions werden nur bei ganzzahligen Typen geworfen. System.out.println("Erg: " / 0); // Ergebnis: Infinity // vergleiche java.lang.float.positive_infinity System.out.println("Erg: " + 2 / 0); // Laufzeitfehler: ArithmeticException: by zero 58

59 Eigene Exceptions Es ist möglich, eigene Fehlerklassen aus den vorhandenen abzuleiten. public class MyException extends IllegalArgumentException { public MyException() { super(); public MyException(String s) { super(s); public String getmessage() { return "Meine feste Fehlermeldung!"; 59

60 Exceptions Ablauf (im Detail) Wenn eine Exception auftritt, sucht das Laufzeitsystem erst in der unmittelbaren trycatch-anweisung, die diesen Fehler behandelt. Wird diese nicht gefunden, wird die Suche in den weiteren umgebenden Blöcken fortgesetzt. Wird auch hier nichts gefunden, wird die Exception an den Aufrufer weitergereicht falls keine Behandlung der Exception erfolgt, bricht das Programm ab. 60

61 Teil 10 - Java Streams & Dateien 61

62 Streams und Dateien Um Daten zwischen zwei oder mehreren Rechnern auszutauschen bedient man sich der Streams. Streams (Ströme) sind vergleichbar mit einem Datentunnel zwischen zwei Rechnern. Wenn man an einem Ende etwas eingießt, kommt es am anderem Ende wieder raus (Gartenschlauch nur in eine Richtung benutzbar). 62

63 Streams und Dateien Rechner A Eingang Rechner B Eingang Ausgang Ausgang 63

64 Streams und Dateien Die obersten Streamklassen sind die abstrakten Klassen InputStream und OutputStream. Diese Klassen bieten Methoden zum Lesen bzw. Schreiben von einzelnen Bytes oder Byte Feldern. Um die Funktionalität zu erweitern, müssen die oberen Klassen erweitern werden. 64

65 Streams und Dateien Auch Klassen zum Zugriff auf Dateien sind vorhanden: Beispiel: DataInputStream / DataOutputStream FileInputStream / FileOutputStream FileWriter / FileReader zum Lesen oder Schreiben von Textdateien 65

66 Streams und Dateien Bsp. File file = new File("test.txt"); try { FileWriter fw = new FileWriter(file); fw.write("hallo Welt"); fw.flush(); catch (Exception ex) { ex.printstacktrace(); 66

67 Teil 11 Ausblick: Was gibt es sonst noch und sollte man mal gehört haben? 67

68 UML - Modellierung UML (Unified Modeling Language) ist eine Standardsprache zum Entwerfen von Softwaremodellen. Modelle helfen, ein System zu visualisieren, so wie es ist oder wie wir es wünschen. Modelle ermöglichen uns, die Struktur oder das Verhalten eines Systems zu spezifizieren. Modelle liefern uns eine Schablone, die uns beim Konstruieren eines Systems anleitet. Modelle dokumentieren die getroffenen Entscheidungen. 68

69 69

70 Warum modellieren? Beispiel: Der Bau einer Hundehütte Man braucht nur einen Hammer, Nägel und ein paar Bretter, baut diese zusammen und der Hund ist glücklich. Kein Modellieren nötig! 70

71 Warum modellieren? Beispiel: Der Bau eines Hochhauses Ohne Planung und Arbeitsteilung unmöglich Viele Auflagen Sehr hohe Kosten Ansprüche der Mieter Modellieren unumgänglich! 71

72 Modellieren mit UML UML ermöglicht objektorientiertes Modellieren. Da UML standardisiert ist, können die Modelle von anderen Anwendern verstanden werden. UML ermöglich Forward-Engineering : Aus einem UML-Modell kann der Code einer Programmiersprache erzeugt werden (Java, C++...). UML ermöglich Reverse-Engineering : Aus dem Code einer Implementierung kann ein entsprechendes UML-Modell erzeugt werden. 72

73 Multiple Diagramme in UML

74 Modell-Typen in UML Es ist sinnvoll, für die verschiedenen Sichtweisen auf ein System unterschiedliche Modelle zu verwenden. Programmierer Hier: Statiker Kunden Klassendiagramm Anwendungsfalldiagramm 74

75 Ansätze für Persistenz Ohne DBMS Speicherung in einer Datei Nutzung eines ODBMS Nutzung von RDBMS JDBC oder SQLJ EJB JDO Frameworks (z.b. Hibernate) Spezielle DBMS, z.b. Cachè von InterSystems 75

76 Serialisieren von Objekten in Java Objekte werden von Java in einer Datei gespeichert und können wieder geladen werden. Alle relevanten Objekte müssen das Interface java.io.serializable implementieren. 76

77 Serialize - Deserialize Referenzierende Objekte werden automatisch mit gespeichert (serialize) und auch mit geleaden (deserialize). A B class A implements Serializable { private B b; public A() { b = new B(); 77

78 Beispiel: Java Serialize public class Person implements Serializable { String name; ArrayList nummern = new ArrayList(); class PersTest { public static void main(string[] args) { Person a = new Person( Fred ); ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream( filename ); os.writeobject(a); os.close; ObjectInputStream is = new ObjectInputStream(new FileInputStream( filename ); Person b = (Person)is.readObject(); is.close(); 78

79 ER-Diagramm Der Kunde muss keine DVD geliehen haben (card 0). Es kann mehrere Exemplare geben (card *). Cartoons haben keine Schauspieler (card 0). 79

80 Speicherung von Objekten in Relationalen Datenbanken OR-Mapping Eine Klasse wird durch eine Tabelle abgebildet. Ein Objekt durch eine Zeile in einer Tabelle. Die Beziehungen werden durch Fremdschlüssel und weitere Tabellen realisiert (siehe nächste Folie). Problem: Abbildung der Vererbungshierarchie. Methoden werden im Allgemeinen nicht auf die Datenbank abgebildet. 80

81 OR-Mapping von 1:n Beziehungen Eine 1:n Beziehung zwischen zwei Klassen kann durch eine Tabelle in der Datenbank realisiert werden: Schlüssel von Professor (name, uni) wird als Fremdschlüsselattribut in die Tabelle Vorlesung aufgenommen. Vorlesung(name, sws, profname, profuni, profrang) 81

82 OR-Mapping von n:m Beziehungen Eine n:m Beziehung zwischen zwei Klassen kann durch drei Tabellen in der Datenbank realisiert werden: für jede der Klassen eine entsprechende Tabelle die dritte Tabelle enthält Schlüssel von Student (matrikelnr) und Schlüssel von Vorlesung (name) Student(matrikelnr, fach) Vorlesung(name, sws) Hört(studentMatrikelnr, vorlesungname) 82

83 JUnit, Ant, Maven, AspectJ, JUnit = Framework zum Testen von Java-Progr. (Stichwort: Test Driven Development TDD) Ant & Maven = Build-Management Tools (bei größeren Projekten unerlässlich) AspectJ = Aspekt-Orientierte Erweiterung für Java (siehe auch: cross-cutting-concerns) 83

84 Links, Literatur index.htm Jetzt lerne ich Java -> Bibliothek!!! wieder geplant: Java-Intensivkurs als Vorbereitung für das PRG-Praktikum!! 84

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 2: OOP und JAVA (Vorlesung 11) Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

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

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

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 Fehlerbehandlung

Java Fehlerbehandlung Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm

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

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

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

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

Javakurs für Anfänger

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

Mehr

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens 6. Exceptions Exception Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Eine Exception ist ein Objekt, das Informationen über einen Programmfehler enthält. Eine Exception

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

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

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

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

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 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

Javakurs für Anfänger

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

Mehr

Wiederholung zur Vorlesung Programmieren

Wiederholung zur Vorlesung Programmieren Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben

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

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

3. Exceptions. Hintergrund: Programmieren auf der Basis von Verträgen. Kundenklasse. Lieferantenklasse

3. Exceptions. Hintergrund: Programmieren auf der Basis von Verträgen. Kundenklasse. Lieferantenklasse 3. Exceptions Prinzipien von Exceptions 3. Exceptions Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Methodenaufruf Verpflichtung zur Einhaltung der Vorbedingung

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

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

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

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

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

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

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Programmieren 2 Selbststudium Semesterwoche 6

Programmieren 2 Selbststudium Semesterwoche 6 Programmieren 2 Selbststudium Semesterwoche 6 1. Datenströme (Basis: Handout PRG2_SW6_OOP) 1. Gehen Sie nochmals die Kontrollfragen A durch. A.1. Ein JavaProgramm liest Daten aus einem???strom. InputStream

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Fehlerbehandlung und Ein- und Ausgabe Titel der Präsentation 2 Fehler = Exceptions? Die Exception- bzw. Ausnahmebehandlung in Java ist eine spezielle Form der Fehlerbehandlung Typischerweise

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Programmieren in Java

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

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

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

Mehr

Java I Vorlesung Exceptions

Java I Vorlesung Exceptions Java I Vorlesung 8 Exceptions 14.6.2004 Exceptions (Ausnahmen) Klassen für Ein- und Ausgabe Ausnahmen Ausnahmen (Exceptions) sind ein Mechanismus zum kontrollierten Melden und Reagieren auf Fehler. Man

Mehr

Java Vererbung. Inhalt

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

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Programmieren I. Kapitel 8. Vererbung

Programmieren I. Kapitel 8. Vererbung Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte

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

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

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

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Android will doch nur spielen. Java Eine kurze Einführung

Android will doch nur spielen. Java Eine kurze Einführung Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach

Mehr

Teil V. Generics und Kollektionen in Java

Teil V. Generics und Kollektionen in Java Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für

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

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

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. Martin Wirsing. Ziele. Vererbung

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

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

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

Vererbung & Schnittstellen in C#

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

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

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

2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert

2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert 2. Vererbung und Polymorphie Vererbung (1/2) Vererbung mit extends Konstruktoren bei der Vererbung Überladen von Methoden - statische Polymorphie Casten Dynamische Polymorphie Klasse Object Eine Unterklasse

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

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen Prof. Dr. Nikolaus Wulff Collections in Java 2 Java 2 Collections: http://java.sun.com/products/jdk/1.2/docs/guide/collections/index.html

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung 25.01.2007 Wintersemester 2006/2007 Computerlinguistik, Campus DU Überblick Seite 2 Datenströme: Ein und Ausgabe von Daten Java Collections Framework Eingabe/Ausgabe Seite 3 Lesen, Schreiben

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

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 11/12. Kapitel 12. Fehler und Ausnahmen

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

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

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

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

Mehr

Faustregeln zu Zusicherungen

Faustregeln zu Zusicherungen Faustregeln zu Zusicherungen Zusicherungen sollen stabil sein (vor allem an Wurzel der Typhierarchie) keine unnötigen Details festlegen explizit im Programm stehen unmissverständlich formuliert sein während

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Tutorium zur Vorlesung Programmieren

Tutorium zur Vorlesung Programmieren Tutorium zur Vorlesung Programmieren 8. Tutorium Joshua Gleitze 19. Dezember 2016 IPD Koziolek Beispiellösung Beispiellösung für das 3. Übungsblatt, inklusive Tests: joshuagleitze.de/tutorien/programmieren1617/code/beispiellösung3

Mehr

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Ausnahmen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Ausnahmen (Exceptions) Motivation Fehlerbehandlung Klassenhierarchie Checked vs. Unchecked

Mehr

5.13 Umgang mit Fehlern

5.13 Umgang mit Fehlern 5.13 Umgang mit Fehlern Klassifikation von Fehlern: Syntaxfehler: Lexikalische Fehler: Falsche oder unbekannte Worte String s neu String("Max"); Falsche Anordnung von Anweisungen: Falscher Typ: import

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

3D Programmierpraktikum: Einführung in C++ - Teil 2

3D Programmierpraktikum: Einführung in C++ - Teil 2 3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

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

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

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 12. Exceptions.1 12 Exceptions 12 Exceptions Java unterscheidet drei Arten von Ereignissen: Events: Interaktionsereignisse mit dem GUI (siehe Kapitel 10) Errors: Interne schwerwiegende Fehler in der JVM

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

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

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

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

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

Mehr

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 9. Fehlerbehandlung Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

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

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 4: Kombination OOP/.NET 1/27/2012 1 Do Events Delegates Operatoren Exceptions Namespaces Bibliotheken.NET Klassen Serialisierung

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

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

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

JAVA - Methoden

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

Mehr