Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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,

Ähnliche Präsentationen


Präsentation zum Thema: "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,"—  Präsentation transkript:

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


Herunterladen ppt "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,"

Ähnliche Präsentationen


Google-Anzeigen