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

<- Zurück zur Übersicht

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:

Ziel: Kleine Studentendatenbank in der Studenten eingefügt und gesucht werden können. Advanced: mit löschen Idee: "Statistik" : Anzahl der Studenten, durchschnittliches Alter, bla

1.: Schreibe eine Klasse die informationen über einen Studenten speichert (....) Erzeuge ein Objekt dieser Klasse, schreibe einen Wert in eine ihrer Variablen, lese ihn anschließend wieder aus und gib ihn auf dem Bildschirm aus.

2.: schreibe einen Konstructor für die Klasse Student mit welchem die Variablen des erzeugten Objektes gleich mit Werten gefüllt werden. Erzeuge mit hilfe dieses Constructors ein Objekt, lies einen seiner Werte aus und gib ihn auf dem Bildschirm aus.

3: Schreibe eine Funktion "PrintMe" die die Daten des Studentenobkektes in der Console ausgibt und teste diese.

4: Lege ein Array mit 100 Studentenobjekten an welche verschiedene Matrikelnummern haben und gib alle auf dem Bildschirm aus.

5: Verlagere das Array in eine neue Klasse StudentenDatenbank und schreibe für diese die Methoden StudentHinzufuegen und PrintMe.

6: ....


(private / public ?)

LE 4: Wir sind alle nur Objekte

Vortragende: Arthur, Martin

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 / Polymorphie
      • Standardmethoden: toString, equals, hash, compare
    • 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

  • meinPferd = deinPferd;
  • 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 (Apfelbaum.hatNochAepfel) {
       Apfel meinApfel = Apfelbaum.getApfel(); // Apfel pflücken
       ich.esse(meinApfel);
}
  • Collections, Polymorphie (Apfel mit Wurm....)

<- Zurück zur Übersicht