M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Zusammenfassung des Kapitels 8
der Universität Oldenburg
Programmierkurs Java WS 98/99 Vorlesung 15 Dietrich Boles 17/02/99Seite 1 Programmierkurs Java Vorlesung im WS 1998/1999 am FB Informatik der Universität.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Ausnahmen HS Merseburg (FH) WS 06/07.
Binäre Bäume Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Dynamische Webseiten Java servlets.
Objektorientierte Programmierung JDK-Klassenbibliothek
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Informatikunterricht mit Java
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursive Funktionen (Fakultät)
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Exception Handling in Java
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Robuste Programme durch Ausnahmebehandlung
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java Programme nur ein bisschen objektorientiert.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Grundkurs Informatik 11-13
Mit der Turtle Java Programmieren
Cäsar-Verschlüsselung
Grundkurs Informatik mit Java
Cäsar-Verschlüsselung
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
Grundkurs Informatik 11-13
 Präsentation transkript:

m a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik, 2.Auflage

2 m a r c – o l i v e r p a h l date example (major changes to the book p.191) public class Date{ private int day, month, year; private static final byte D = 1; private static final byte M = 1; private static final short Y = 1900; // constructors public Date(){ this(D, M, Y); } public Date(int y){ this(D, M, y); } public Date(int m, int y){ this(D, m, y); } public Date(int d, int m, int y){ setDay(d); setMonth(m); setYear(y); } // selectors (the selectors are also class-methods) public int getDay(){ return day; } public int getMonth(){ return month; } public int getYear(){ return year; } public void setDay(int d){ day=d; } public void setMonth(int m){ month=m; } public void setYear(int y){ year=y; } // methods (for information about the toString method see JDK-Doc Object) public String toString(){ return (day+"."+month+"."+year); } }

3 m a r c – o l i v e r p a h l Wie teste ich meine Klasse? Zum Testen der Date-Klasse habe ich im Projekt noch die folgende Main-Klasse angelegt. Analog könnt Ihr die Klassen, die Ihr schreibt, testen! public class Main { public static void main(String[ ] args) { Date geburtsDatum = new Date(10, 11, 1980); Date defaultDatum = new Date(); System.out.println("geburtsDatum: "+geburtsDatum ); System.out.println("defaultDatum: "+defaultDatum ); // hier wird automatisch die.toString-Methode aufgerufen } Das zip-File mit dem Beispielcode befindet sich auf der Webseite.

4 m a r c – o l i v e r p a h l Was passiert bei der Objekterstellung? Date private int day; private int month; private int year; public Date()... public Date(int d, int m, int y) public int getDay()... public void setDay( int d )... Heap day = 10; month = 11; year = 1980; Date geburtsDatum Date geburtsDatum = new Date(10, 11, 1980); KOPIE Es wird also eine neue Instanz der Date- Klasse mit dem Namen geburtsDatum erzeugt!

5 m a r c – o l i v e r p a h l Klassen-/ Instanzvariablen Id private static int counter=1; private int id; public Id(){id = counter++;} public int getId(){return id;} class Test{ public static void main(String[] args){ Id idA = new Id(); Id idB = new Id(); Id idC = new Id(); System.out.println( idA: +idA.getId() ); System.out.println( idB: +idB.getId() ); System.out.println( idC: +idC.getId() ); } Heap Id idA counter id =1 Id idB counter id =2 Id idC counter id =3 2 X 3 X 4 X 1 2 3

6 m a r c – o l i v e r p a h l Exceptions dienen der kontrollierten Ausnahmebehandlung Throwable ErrorException public class MyException extends Exception{ public MyException(String val){ super(val); } } MyException public static void main(String[] args) { try{ myProcedure(); } catch(MyException e){ System.out.println("MyException: "+e.getMessage()); } } public static void myProcedure() throws MyException{ throw new MyException("Ich bin eine Exception"); } Die Exception: Methode, die die Exception wirft: Code, der die Methode aufruft:

7 m a r c – o l i v e r p a h l Assertions generieren abhängig von einer Bedingung zur Laufzeit Meldungen und dienen –der aktiven Dokumentation, also der Ausgabe von Informationen über den aktuellen Zustand, indem sie z.B. die Schleifenbedingungen über- prüfen... –der Fehlersuche (Debugging) public static int sum_rek(int n){ assert n>=0 : \ !(n>=0) n=+n; if ( n == 0 ) return 0; return ( n + sum_rek( n-1 ) ) } zu dem Beispiel siehe auch Folien sum_java

8 m a r c – o l i v e r p a h l einfach verkettete Listen (simply linked lists) SimplyLinkedList private Node startNode;... public SimplyLinkedList()... public T getDataAt(int i)... Node private Node nextNode; private T value; public Node(T value)... public T getValue()... T steht jeweils für einen Datentyp, z.B. int, String, Date,... Node nextNode Node nextNode Node nextNode Node nextNode Node nextNode KOPIEN/ INSTANZEN...

9 m a r c – o l i v e r p a h l doppelt verkettete Listen (doubly linked lists) DoublyLinkedList private Node startNode;... public SimplyLinkedList()... public T getDataAt(int i)... Node private Node nextNode; private Node prevNode; private T value;... public Node(T value)... public T getValue()... Node nextNode prevNode... Node nextNode prevNode Node nextNode prevNode Node nextNode prevNode

10 m a r c – o l i v e r p a h l Stack/ Queue Stack: LastInFirstOut: push(8); top(); 8 8 Queue: FirstInFirstOut: push(8); top(); 8 7 Die Anordnung der Werte von oben nach unten ist willkürlich gewählt und könnte genau so gut andersrum sein.