Logo Logo
InfoHome Themen Projekte Links Software
Themen
JavaHamster
BlueJ
Klassen und Objekte
Klassendefinition
Objektinteraktion
Klassendokumentation
Objektsammlungen
Aufgaben
Projekte
Java
HTML
XHTML
CSS
XML
Datenbanken
MySQL
Theoretische Informatik
PHP
Kara
Lego-Roboter
Algorithmen

Klassen und Objekte

Software-Objekte modellieren Objekte eines Anwendungsbereiches. Objekte gleicher Bauart können in Kategorien zusammengefasst werden. Eine Klasse beschreibt - auf abstrakte Weise - alle Objekte einer Kategorie.

Bsp. Verkehrssimulation
Auto ist ein Begriff, der im Anwendungsbereich "Strassenverkehr" von zentraler Bedeutung ist. Ist Auto Klasse oder Objekt? Solange man von keinem bestimmten Auto redet, redet man über die Klasse Auto, über Autos im Allgemeinen. Sobald von einem bestimmten Auto die Rede ist, redet man über ein Objekt.

Ein Objekt wird häufig auch als Instanz (engl. instance) einer Klasse bezeichnet. So ist ein spezielles Auto eine Instanz der Klasse Auto.

Instanzen erzeugen

In BlueJ werden Instanzen einer Klasse erzeugt, indem man mit der rechten Maustaste auf das Klassensymbol klickt und die Methode new Klassenname() aus dem Kontextmenü auswählt. Bei der Namensgebung sollte man folgende Konventionen beachten: Die Namen von Klassen beginnen mit einem Großbuchstaben, Objekte werden mit Kleinbuchstaben benannt.

Methoden aufrufen

Nach Rechtsklick auf ein Instanzsymbol erscheint ein Kontextmenü, in dem alle Operationen angezeigt werden, mit denen die Instanz manipuliert werden kann. Solche Operationen werden Methoden genannt, sind im Prinzip aber nichts anderes als die uns schon von der Hamster-Programmierung bekannten Funktionen. Wir können mit Objekten kommunizieren, indem wir ihre Methoden aufrufen. Ein Objekt tut üblicherweise etwas, wenn eine seiner Methoden aufgerufen wird.

Methoden können einen oder mehrere Parameter haben, mit denen zusätzliche Informationen für eine Aufgabe angegeben werden. Erwartet eine Methode einen Parameter, wird im Dialogfenster der Methodenkopf (Signatur) angezeigt:

void horizontalBewegen(int entfernung)

Eine Signatur liefert Informationen über eine Methode. Der Teil zwischen den Klammern liefert Informationen über benötigte Parameter. Für jeden Parameter wird ein Typ und ein Name definiert.

Datentypen

Variablen wie Paramter müssen in Java immer einen Typ haben. Ein Typ definiert, welche Arten von Werten ein Parameter annehmen kann. Bekannte Typen sind bisher int (ganze Zahlen) und boolean (Wahrheitswerte). Der Datentyp String dient der Speicherung von Zeichenketten (beispielsweise ein Wort oder ein Satz). Zeichenketten werden in doppelten Anführungszeichen angegeben.

Eine Klasse, viele Instanzen

Von einer Klasse können viele Instanzen erzeugt werden. Mit der Klasse Kreis können beliebig viele Kreis-Objekte erzeugt werden. Jedes dieser Objekte hat seine eigene Position, Farbe und Größe, die durch ein entsprechenden Methodenaufruf an dem Objekt verändert werden kann. Dieser Aufruf beeinflusst dieses spezielle Objekt, aber kein anderes.

Die Menge der momentanen Werte der Attribute, die ein Objekt definieren (wie x- und y-Position, Farbe, Durchmesser und Sichtbarkeit eines Kreises), wird auch als Zustand des Objektes bezeichnet. In BlueJ kann man sich den Zustand eines Objektes anzeigen lassen, indem der Eintrag Inspect aus dem Kontextmenü einer Instanz ausgewählt wird. Es öffnet sich der so genannte Objektinspector.

In Java werden Attribute von Objekten häufig Datenfelder oder einfach nur Felder genannt.

Objektinteraktion

Objekte können miteinander kommunizieren, indem sie gegenseitig ihre Methoden aufrufen. Im Projekt Zeichnung besitzen Instanzen der Klasse Zeichnung die Methode zeichne. Ein Aufruf dieser Methode zeigt beispielhaft, wie ein Objekt andere Objekte erzeugen und manipulieren kann.

Quelltext

Jeder Klasse ist ein Quelltext zugeordnet, der Details einer Klasse beschreibt. In BlueJ kann der Klassenquelltext betrachtet werden, indem man einen Doppelklick auf ein Klassensymbol ausführt. Im Quelltext wird definiert, welche Datenfelder und Methoden eine Klasse hat. Wenn Änderungen am Quelltext vorgenommen worden sind, muss die Klasse erst neu übersetzt (compiliert) werden, bevor diese wirksam sind.

Weiteres zu Methoden

Im Projekt Laborkurs finden sich Beispiele für Methoden die ein Ergebnis liefern. So gibt die Methode String gibName() den Namen des Studenten aus. Das Wort String vor dem Namen der Methode spezifiziert den Ergebnistyp. Der Ergebnistyp void sagt aus, das eine Methode nichts zurückgibt.

Im Projekt Laborkurs lassen sich Studenten Laborkursen zuordnen. Dabei übergibt man der Methode trageStudentEin einer Instanz der Klasse Laborkurs ein Objekt vom Typ Student. Objekte können also als Parameter anderen Objekten übergeben werden. In diesem Fall steht der Name der Klasse des Objektes als Paramtertyp in der Signatur.

void trageStudentEin(Student neuerStudent)

» drucken: pdf | html

© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück