Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Martin Häcker/Java Kurs/Tag 2

Version vom 3. März 2006, 09:17 Uhr von Martin Häcker (Diskussion) (Java / Methodik: von funktionaler programmierung abgeleitet)

LE 3: Verfeinerung Java und Klassenbibliothek

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

Übungsaufgaben

LE 4: Wir sind alle nur Objekte

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
  • Menü Objekt, das sich leicht adaptieren lässt?
  • Apfelbaum
while (hatApfelbaumNochAepfel) {
	pflueckeEinenApfelUndIssIhn();
}
  • Collections, Polymorphie (Apfel mit Wurm....)