Einstiegstext-Analyse
Lösung geprüft
Die Aufgabe der heutigen Stunde ist die Einstiegstext-Analyse! Keine Zeile Code diesmal, sondern fünf Fragen zum Text über objektorientierte Programmierung. Das sieht nach wenig aus, ist aber genau der Stoff, der in der Klausur als Begriffserklärung drankommt.
Wichtig ist der Hinweis in der Aufgabe: du sollst bei jeder Antwort einen Bezug zum Autohaus-Beispiel herstellen. Eine auswendig gelernte Definition reicht also nicht, du musst sie an unserem Auto festmachen.
Analysieren Sie den Einstiegstext und beantworten Sie die folgenden Fragen: Was ist eine Klasse? Was ist ein Objekt? Was ist ein Attribut? Was ist eine Methode (Funktion/Prozedur)? Wozu dient ein „Konstruktor"?
Hinweis: Verwenden Sie bei der Beantwortung passende Verweise zum Autohaus-Beispiel. Schreiben Sie zu jedem Punkt mindestens einen vollständigen Satz.
Meine Antworten
Klick auf eine Antwort, um sie aufzudecken. Versuch es vorher selbst, das bringt dir mehr.
-
Was ist eine Klasse?
Eine Klasse ist eine Art Vorgabe für Objekte. Sie definiert welche Attribute einem Objekt zugewiesen werden. Hier zum Beispiel die Klasse "Auto"
-
Was ist ein Objekt?
Ein Objekt ist an seine Klasse gebunden und enthält Werte für alle von der Klasse definierten und im Objekt initialisierten Attribute. Hier zb alle von "Auto" generierten Objekte
-
Was ist ein Attribut?
Ein Attribut ist ein Datenwert der das Objekt "charakterisiert". Beispielweise Kennzeichen, Kilometerstand oder TankVolumen
-
Was ist eine Methode (Funktion/Prozedur)?
Eine Funktion wird verwendet wenn ein Wert zurückgegeben werden soll. Integer, String, Double, Void (keinen Wert), und weitere. Beispielsweise rufen wir eine Funktion und erhalten einen Wert zurück. Eine Prozedur hingegen ist Code der ausgeführt wird und keinen Rückgabewert hat. Also eine Aktion ohne Rückgabewert. Diese beiden werden in Java als Methode zusammengefasst. Beispielsweise die getX() oder setX() Methoden. Im Falle des AutoHauses ist "getKennzeichen()" eine Methode
-
Wozu dient ein „Konstruktor"?
Der Konstruktor initalisiert die Objekte und Attribute der Klasse. Man kann einen eigenen Konstruktor in den Code programmieren. Falls doch keiner vorhanden ist übernimmt das der Kompiler.
Warum das die richtigen Antworten sind
Klasse und Objekt nicht verwechseln
Das ist die Unterscheidung, an der in der Klausur die meisten Punkte
hängen. Die Klasse ist der Bauplan, das
Objekt ist das fertige Ding. In unserem Code steht die
Klasse einmal in Auto.java – und daraus können wir
beliebig viele Autos bauen:
Auto auto1 = new Auto("WI-AB 123", 50, 6.5);
Auto auto2 = new Auto("F-XY 999", 40, 5.0);
Eine Klasse, zwei Objekte. Beide haben ein Kennzeichen, aber jedes hat
sein eigenes. Wenn du auto1 fahren lässt, ändert sich der
Kilometerstand von auto2 nicht. Der Bauplan sagt nur, dass
es einen Kilometerstand gibt – welchen Wert er hat, steht im
Objekt.
Attribut = Daten, Methode = Verhalten
Ein Objekt besteht immer aus diesen zwei Sorten von Zeug. Die Attribute sind die Daten, also was das Objekt ist. Die Methoden sind, was es kann.
| Im Auto | Was es ist |
|---|---|
Kennzeichen | Attribut – ein Datenwert, der das Objekt beschreibt |
Kilometerstand | Attribut – ändert sich über die Lebenszeit des Objekts |
getKennzeichen() | Methode mit Rückgabewert, also eine Funktion |
fahren(100) | Methode ohne Rückgabewert, also eine Prozedur |
Der Unterschied zwischen Funktion und Prozedur ist rein der
Rückgabewert. Steht void davor, kommt nichts zurück –
Prozedur. Steht ein Datentyp davor, kommt ein Wert zurück – Funktion.
Java nennt beides Methode, deshalb hört man die beiden Wörter im
Java-Unterricht selten. In der Klausur werden sie aber abgefragt.
Der Konstruktor
Der Konstruktor ist die Methode, die beim new läuft. Seine
Aufgabe ist, das frische Objekt in einen sinnvollen Anfangszustand zu
bringen. Ohne ihn hätte unser Auto weder Kennzeichen noch Tankgröße,
es wäre einfach ein leeres Etwas.
Und der Nachsatz in der Antwort stimmt tatsächlich: schreibst du gar keinen Konstruktor, legt der Compiler selbst einen an – den parameterlosen Default-Konstruktor. Der macht aber auch nichts weiter als das Objekt zu erzeugen. Sobald du selbst einen schreibst, ist der automatische weg. Das wird später beim Überladen von Konstruktoren nochmal wichtig.