Lernziele
Wenn Sie diese Seite durchgearbeitet haben, sollten Sie wissen
- was der Unterschied zwischen einer Klasse und einem Objekt ist,
- welche Rolle die Attribute einer Klasse spielen und warum dabei die Datentypen beachtet werden müssen,
- was manipulierende Methoden sind und welche Rolle den Parametern dabei zukommt,
- was sondierende Methoden sind.
1.3.1 Die Theorie zum Workshop
Was ist der Unterschied zwischen einer Klasse und einem Objekt?
Eine Klasse kann man sich als Vorlage für die Erzeugung von Objekten vorstellen.
Sie haben sicherlich schon einmal mit einem Textverarbeitungsprogramm wie Word gearbeitet. Dort gibt es sogenannte Formatvorlagen, zum Beispiel für "Geschäftsbrief" oder "Lebenslauf". Wenn Sie ein neues Dokument erstellen, werden Sie gefragt, von welcher Vorlage das Dokument erstellt werden soll. Wenn Sie dann "Geschäftsbrief" wählen, wird ein neues Dokument erstellt, das schon einige Inhalte und Formatierungen besitzt.
Solch eine Formatvorlage könnte man nun mit einer Java-Klasse vergleichen, und das aus der Vorlage erzeugte Textdokument wäre dann ein Objekt.
- Formatvorlage → Klasse
- Dokument → Objekt
In einer Klasse werden die Attribute und Methoden festgelegt, die alle Objekte dieser Klasse besitzen. Die Werte der Attribute können sich jedoch von Objekt zu Objekt unterscheiden.
Welche Rolle spielen die Attribute einer Klasse?
Attribute beschreiben die Eigenschaften der Objekte einer Klasse.
Welche Rolle spielen die Datentypen?
Jeder Parameter und jedes Attribut besitzt einen Datentyp. Der Datentyp legt fest, welche Art von Werten gespeichert oder an eine Methode übergeben werden kann.
In der Programmiersprache Java gibt es mehrere verschiedene Datentypen. Die vier wichtigsten sind:
- String → eine Zeichenkette wie "yellow"
- int → eine ganze Zahl wie 50
- double → eine Kommazahl wie 3.14159
- boolean → ein Wahrheitswert: true oder false.
Was sind manipulierende Methoden?
Manipulierende Methoden verändern den Wert eines oder mehrerer Attribute und damit den Zustand eines Objekts.
Viele manipulierende Methoden benötigen Parameter, damit sie korrekt arbeiten können; oft werden dafür Parameter benötigt. In BlueJ werden diese Parameter zunächst über eine Dialogbox eingegeben. Später werden wir sondierende Methoden mit ihren Parametern direkt aus Java-Programmen heraus aufrufen.
Was sind sondierende Methoden?
Sondierende Methoden sind das Gegenteil von manipulierenden Methoden. Sie verändern keine Attributwerte, sondern sondieren (ermitteln) bestimmte Attributwerte. Eine Methode wie getDiameter() liefert den Durchmesser des jeweiligen Kreis-Objekts als Ergebnis zurück.
Der Aufrufer kann der Benutzer sein, der mit BlueJ arbeitet. Eine Methode kann aber auch von einer anderen Methode aufgerufen werden. In diesem Fall ist die aufrufende Methode der Aufrufer.
Welche Rolle spielen Parameter?
Mit Hilfe von Parametern kann man einer Methode Informationen übergeben, die sie zur Ausführung ihrer Aufgabe benötigt.
Soll beispielsweise die Farbe oder die Größe eines Circle-Objekts verändert werden, so muss die neue Farbe bzw. die gewünschte Größe beim Aufruf der Methode als Parameter übergeben werden.
Merke:
Klassen, Objekte, Methoden und Parameter
- Eine Klasse ist eine Vorlage zur Erzeugung von Objekten.
- Ein Objekt besitzt Attribute und Methoden.
- Attribute beschreiben den Zustand eines Objekts.
- Manipulierende Methoden verändern diesen Zustand.
- Sondierende Methoden liefern Informationen über den Zustand eines Objekts.
- Parameter übergeben einer Methode zusätzliche Informationen.
Exkurs für Fortgeschrittene:
Getter- und Setter-Methoden
Setter-Methoden sind spezielle manipulierende Methoden, die in der Regel den Wert von exakt einem Attribut verändern. Der Name einer solchen Setter-Methode setzt sich aus dem Präfix "set" und dem Namen des zu verändernden Attributs zusammen. Eine Setter-Methode, die den Wert des Attributs radius verändern kann, heißt beispielsweise
public void setRadius(double neuerRadius)
Getter-Methoden sind spezielle sondierende Methoden, die den Wert eines Attributs zurückliefern (direkte Getter-Methode) oder aus einem oder mehreren Attributwerten einen neuen Wert berechnen und zurückliefern (berechnende Getter-Methoden). Die Attributwerte werden durch Getter-Methoden jedoch nicht verändert!
In diesem Kurs unterscheiden wir aus didaktischen Gründen zwei Arten von Getter-Methoden, nämlich direkte Getter-Methoden und berechnende Getter-Methoden.
Eine Getter-Methode, die den Radius eines Kreises zurückliefert, könnte beispielsweise so heißen:
public double getRadius()
Dies wäre eine direkte Getter-Methode.
Eine berechnende Getter-Methode wertet dagegen einen oder mehrere Attributwerte aus und berechnet daraus einen neuen Wert. Ein Beispiel wäre eine Methode, die aus der Körpergröße und dem Gewicht eines Menschen den BMI-Wert berechnet:
public double getBMI()
Diese Methode wertet die beiden Attribute groesse und gewicht aus. Sie liefert jedoch keinen dieser beiden Werte zurück, sondern berechnet daraus einen neuen Wert, den Body-Mass-Index (BMI).
Hinweis für Lehrende
In der Java-Fachliteratur wird in der Regel nicht zwischen direkten und berechnenden Getter-Methoden unterschieden. Getter werden dort allgemein als Methoden definiert, die den Wert einer Eigenschaft eines Objekts bereitstellen oder zugänglich machen. Ob dieser Wert direkt aus einem Attribut stammt oder beim Aufruf aus einem oder mehreren Attributen berechnet wird, bleibt eine Implementierungsentscheidung der Klasse.
- Habelitz: "Eine Methode, die Auskunft über den aktuellen Wert eines Attributs gibt, wird als Getter-Methode oder einfach als Getter bezeichnet."
- Ullenboom beschreibt Getter und Setter als Zugriffsmethoden nach der JavaBeans-Konvention (getName(), setName(...)) und stellt den direkten Bezug zu einer Property her.
- Kofler spricht von Methoden getVarname() und setVarname(), die zum Auslesen bzw. Verändern der Daten dienen.
Die Unterscheidung zwischen direkten und berechnenden Getter-Methoden wird in diesem Kurs ausschließlich aus didaktischen Gründen verwendet. Sie soll Schülerinnen und Schülern den Unterschied zwischen einer Methode wie getName() und einer Methode wie getBMI() verdeutlichen.
Quellen:
- Habelitz, Hans-Peter:Programmieren lernen mit Java. Rheinwerk Verlag, Bonn, 2025.
- Kofler, Michael: Java – Der Grundkurs. Rheinwerk Verlag, Bonn, 2023.
- Ullenboom, Christian: Java ist auch eine Insel. Rheinwerk Verlag, Bonn, 2026.
Seitenanfang -
Weiter mit der Folge 2...