i

Fachkonzept - Objekte und Klassen

Mehrere Objekte einer Klasse erzeugen

NXT-Baustein mit zwei angeschlossenenTastsensoren[1]

Am NXT-Baustein sind zwei Tastsensoren angeschlossen. Sie können auf die gleiche Art und Weise beschrieben werden und haben die gleiche Funktionalität. In der objekt-orientierten Modellierung spricht man dann von Objekten (Instanzen) der gleichen Klasse (Objekttyp).

Eine Klasse legt genau fest, welche Attribute (Eigenschaften) die zu konstruierenden Objekte haben sollen, welche Methoden (Operationen) sie ausführen können sollen und welche anderen Objekte darauf zugreifen können.

vgl. Klassen als Baupläne

Ein Taster ist an einem bestimmten Eingang (Port) des NXT angeschlossen. Es soll jederzeit geprüft werden können, ob der Taster (zu diesem Zeitpunkt) gedrückt ist. Daraus ergibt sich folgendes Klassendiagramm:

Definition der Klasse TouchSensor mit Attribut port, Konstruktor und der Methode isPressed[2]

Im oberen Feld steht der Klassenname TouchSensor. Hier wird zusätzlich angegeben, dass diese Klasse im Paket lejos.nxt definiert ist. Im zweiten Feld stehen die Attribute und im dritten Feld die zur Verfügung stehenden Methoden.

Bemerkung: Jede (öffentliche) Java-Klasse ist in einer eigenen Datei gespeichert, die [Klassenname].java heißt.

Objekte erzeugen

Um ein Objekt einer Klasse zu erzeugen, erfolgt ein sogenannter Konstruktoraufruf. Die Konstruktormethode schafft Speicherplatz für das neue Objekt und belegt die Attribute eines Objektes mit initialen Werten.

Der Konstruktor der Klasse TouchSensor erwartet als Eingabe-Parameter ein Objekt der Klasse ADSensorPort, der die Hardware-Schnittstelle angibt. Diese kann beim NXT-Baustein mit SensorPort.S1 bis SensorPort.S4 übergeben werden.

Für unser Beispiel benötigen wir zwei TouchSensor-Objekte. Diese sollen linkerTaster und rechterTaster heißen. Der linke Taster ist am Port 1, der rechte Taster am Port 4 angeschlossen. Der Aufruf des Konstruktors erfolgt mit voran gestelltem Schlüsselwort new:

static TouchSensor linkerTaster = new TouchSensor(SensorPort.S1);
static TouchSensor rechterTaster = new TouchSensor(SensorPort.S4);

Zwei weitere Beispiele für NXT-Klassen

Screenshot: UML-Diagramm für leJOS-Klassen LCD und Button (verkürzt)[3]

Quellen

Suche

v
2.6.4.4
inf-schule.de/programmierung/robotik/exkursOOlejos/fachkonzept_objekte
inf-schule.de/2.6.4.4

Rückmeldung geben