Folien - BlueJ

Werbung
Inhalt
• Bibliotheksklassen benutzen
• Dokumentation lesen
• Dokumentation schreiben
Klassenbibliotheken
4.0
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Die Java Klassenbibliothek
• Tausende Klassen
• Zehntausende Methoden
• Viele nützliche Klassen die uns das
Programmieren erleichtern
• Ein(e) kompetenter JavaProgrammierer(in) muss in der Lage
sein, mit den Klassenbibliotheken zu
arbeiten.
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Das Kundendienstsystem
• Ein textbasiertes Dialogsystem
• Die Idee stammt von ‘Eliza’ (Joseph
Weizenbaum, MIT, 1960s)
• Das Projekt untersuchen…
Arbeiten mit Bibliotheken
Sie sollten:
• wichtige Klassen kennen;
• wissen, wie Sie andere Klassen finden.
Wichtig:
• Wir müssen nur die Schnittstelle der
Klasse kennen, nicht die
Implementierung.
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Struktur der Hauptschleife
boolean finished = false;
while(!finished) {
do something
if(exit condition) {
finished = true;
}
else {
do something more
}
}
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Rumpf der Hauptschleife
Die Abbruchbedingung
String input = reader.getInput();
String input = reader.getInput();
...
String response = responder.generateResponse();
System.out.println(response);
if(input.startsWith("bye")) {
finished = true;
}
• Woher kommt ‘startsWith’?
• Was ist es? Was tut es?
• Wir können wir es herausfinden?
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Klassendokumentation lesen
• Die Dokumentation für
Javabibliotheken ist im HTML-Format;
• Lesbar in einem Webbrowser
• Klassen-API: Application Programmers’
Interface
• Schnittstellenbeschreibungen für alle
Bibliotheksklassen
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Schnittstelle und
Implementierung
Die Dokumentation enthält
• den Namen der Klasse;
• eine generelle Beschreibung der Klasse;
• eine Liste der Konstruktoren und Methoden;
• Rückgabewerte und Parameter für
Konstruktoren und Methoden;
• eine Beschreibung des Zwecks jedes
Konstruktors und jeder Methode
die Schnittstelle der Klasse
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Schnittstelle und
Implementierung
Die Dokumentation enthält nicht
• private Felder (die meisten Felder sind privat)
• private Methoden
• die Rümpfe (Quelltext) der Methoden
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Bibliotheksklassen benutzen
• Klassen aus der Klassenbibliothek
müssen mit einer import-Anweisung
importiert werden (außer Klassen aus
java.lang).
• Dann können sie benutzt werden wie
Klassen aus dem eigenen Projekt.
die Implementierung der Klasse
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Packages und import
• Klassen sind in packages organisiert.
• Einzelne Klassen können importiert
werden:
import java.util.ArrayList;
• Ganze packages können importiert
werden:
Die Random-Klasse
• Die Bibliotheksklasse Random kann für
Zufallszahlen benutzt werden
import java.util.Random;
...
Random randomGenerator = new Random();
...
int index1 = randomGenerator.nextInt();
int index2 = randomGenerator.nextInt(100);
import java.util.*;
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Zufällige Antworten erzeugen
public Responder()
{
randomGenerator = new Random();
responses = new ArrayList<String>();
fillResponses();
}
public String generateResponse()
{
int index = randomGenerator.nextInt(responses.size());
return responses.get(index);
}
public void fillResponses()
{
...
}
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Herunterladen