Martin Häcker/Java Kurs/Tag 2
Version vom 3. März 2006, 16:39 Uhr von Martin Häcker (Diskussion) (→LE 3: Verfeinerung Java und Klassenbibliothek: arthur raus, felix rein)
Inhaltsverzeichnis
LE 3: Verfeinerung Java und Klassenbibliothek
Vortragende: Martin, Felix
Inhalt
Java / Methodik
- Modularisierung und Strukturierung -- auf allen Ebenen
- Klassen (als Strukturen)
- Methoden-Kapselung: Methoden-Nachtrag
- Methoden als Abstraktionsmöglichkeiten -> verstecken von methoden [1] Bringts das an der stelle?
- Testen
- eigene assert-Funktion
Objektorientierung (Erklärungsansatz)
- Objekt, Klasse erklären als: "Klasse" Mensch
- davon dann klonen mit bestimmten Modifikationen (augenfarbe, größe, name....)
- das wäre dann klasse, objekte und konstruktoraufruf
- Objekte / Klassen erklären als
- Platonische Ideen (Pferd)
- Tatsächliches Ding (Bruno auf dem ich jeden Dienstag in Hellersdorf reite)
- Objekte als Daten mit Schutzschicht Methoden aussen herum
- Klassen als solches erst später (quasi erst prototyp und dann klassen erklären)
- Ganz anderer Ansatz: Erklären über Einheiten die sich über Nachrichten gegenseitig verständigen
- Äquivalenz zu Funktionaler Programmierung aufmachen
- Constructor: Funktion die Parameter bekommt und eine Funktion zurückgibt die diese verkapselt
- Methoden: diese Funktion kann mit dem Namen verschiedener Methoden aufgerufen werden und wird, indem es diese ausführt, zum Objekt
Probleme beim Erklären
- this, woher kommt das und wie verwendet man es!
Übungsaufgaben
- Selbst Klassen schreiben
LE 4: Wir sind alle nur Objekte
Vortragende: Felix, Martin, Kristian, Robert Lubkoll
Inhalt
Java
- Modularisierung in Java: Klassen und Objekte
- Instanziierung (auch Erklärung Mehrdeutigkeit von "Objekt" für Klasse oder Instanz)
- Referenzen (Pointer)
- insb: Referenzen sind nicht Kopien
- Overloading
- Standardmethoden: toString, ...
- Type Casting einfacher Basistypen?
- Objekte vertieft: als Ansammlung von Daten mit Methoden dazu
- Konstruktoren
- um innendrinn auswechseln zu können
- static
- Static nicht static: Benefits of Local State
- final
- null, new
- this
- static / instanz -> Ebenen modell (?)
- Java-API: Konzept Klassenbibliothek
- Javadocs finden, lesen
- JavaDoc selber schreiben und verwenden -> http://www.javadocs.org
- Input/Output (Streams, usw.) <-- großer Block
- List, ArrayList, InputReader, BufferedReader, Scanner
- Collections
Übungsaufgaben
- Klassen benutzen:
- Input/Output üben
- Viele andere Klassen aus der Java-API finden und nutzen
- Praktische Vorgehensweise, Anleitung zum Selbstlernen, nicht so viel Vorlesung dazu
- UtilityObjekt mit readFile(aFilename) und getUserInput(aPrompt) sowas sollte rauskommen!
- Menü Objekt, das sich leicht adaptieren lässt?
- Apfelbaum
while (Apfelbaum.hatNochAepfel) { Apfel meinApfel = Apfelbaum.getApfel(); // Apfel pflücken ich.esse(meinApfel); }
- Collections, Polymorphie (Apfel mit Wurm....)