Greenfoot Java

Neue Frage »

Auf diesen Beitrag antworten »
olllli Greenfoot Java

Meine Frage:
Hallo Community,

in der Schule haben wir vor einer Woche mit Greenfoot angefangen zu programmieren. Außerdem hat unser Lehrer uns einige Internetadressen ausgegeben mit denen wir arbeiten können.


Kaptitel 5.1
JAVA: 5.1 Klassen, Objekte und Referenzvariablen

Kapitel 6.1.1 - 6.1.4
JAVA: 6.1.1 Klassen deklarieren
JAVA: 6.1.2 Eigenschaften oder Attribute von Klassen
JAVA: 6.1.3 Methoden
JAVA: 6.1.4 Konstruktoren

Während ich mich also durch ein amerikanisches Tutorial und den oben angegeben Links geschlagen habe, bin ich auf einige Fragen gestoßen. Diese habe ich mir selbst beantwortet und möchte nun von euch wissen, ob ich diese Richtig beantwortet habe.



Meine Ideen:
1. Zusammenhang Klasse <>Objekt

Nach der Klasse wird das Objekt gebaut, es ist sozusagen die Vorlage. Allerdings braucht man für die Interaktion beim objektorientiertem Programmieren die Objekt. Also schreibe ich alles was das Objekt machen soll in die Klasse. Also ist die Klasse sozusagen die Vorlage für das spätere Objekt. Wie z.B. ein Bauplan. Kann ich ein Objekt verändern, also mit Methoden belegen? Oder ist das nur in den Klassen möglich. Das würde ja wiederum heißen, dass Objekte einfach stupide Abbildungen einer Klasse sind die agieren. Also muss ein Objekt auch alle Methoden der Klasse besitzen?

2. Methoden
Methoden können also nur in der Klasse geschrieben werden. Es sind sozusagen die Befehle. Dabei kann man unterscheiden durch Rückgabetyp etc. Man kann sich auch in einer Methode auf eine andere Methode beziehen?

Was ist mit einem Referenztyp gemeint?

3. Static

Irgendwann bin ich auf den Befehlszusatz "Static" gestoßen. Den kann ich leider gar nicht einordnen?

4. Dot notation
Die Dot notation erlaubt das beziehen von Methoden aus anderen Klassen. Dadurch, dass zuerst klassenname(punkt)Methode geschrieben wird.

Würde mich über einige Antworten sehr freuen
Vielen Danke im Voraus!

LG
 
Auf diesen Beitrag antworten »
MaBa

Hallo olllli,

hui, das ist alles etwas durcheinander. Ich hab nicht viel Zeit, aber ich versuch das mal zu ordnen:

Zitat:
Also ist die Klasse sozusagen die Vorlage für das spätere Objekt.


Genau.

Zitat:
Kann ich ein Objekt verändern, also mit Methoden belegen? Oder ist das nur in den Klassen möglich. Das würde ja wiederum heißen, dass Objekte einfach stupide Abbildungen einer Klasse sind die agieren. Also muss ein Objekt auch alle Methoden der Klasse besitzen?


Ein Objekt hat immer die Methoden, welche in der Klasse definiert sind. Z.B. könnte eine Klasse "Auto" die Methode "fahren()" haben. Objekte sind keine stupiden Abbildungen, sondern konkrete Ausprägungen einer Klasse. Z.B. ist "Auto" die Klasse und "meinRoterOpel" ist ein Objekt. Die Klasse hat auch entsprechende Attribute wie z.B. Kennzeichen. Bei deinem Objekt "meinRoterOpel" könnte das z.B. "KO-TZ 12" sein.

Zitat:
Methoden können also nur in der Klasse geschrieben werden. Es sind sozusagen die Befehle. Dabei kann man unterscheiden durch Rückgabetyp etc.
.

Methoden werden in der Klasse definiert, richtig. Der Begriff "Befehl" trifft die Sache nicht so richtig, aber du meinst damit wohl das Richtige. Methoden unterscheiden sich zunächst durch ihren Bezeichner, aber natürlich auch durch ihren Rückgabetyp und die Parameterliste.


Zitat:
Was ist mit einem Referenztyp gemeint?

Neben den primitiven Datentypen (z.B. float, int) gibt es auch noch Arrays und Objekte. Die primitiven Datentypen werden per Wert an Methoden übergeben. Bei einer Übergabe per Wert, wird zunächst eine Kopie erzeugt, die am Ende der Methode weggeworfen wird, wodurch nach Außen keine Änderung am Wert der übergebenen Variable bemerkbar ist. Die komplexen Datentypen werden per Referenz übergeben, d.h. wenn man in der Methode schreibend auf die Parameter zugreift, verändert man direkt den Wert.

Zitat:
Irgendwann bin ich auf den Befehlszusatz "Static" gestoßen. Den kann ich leider gar nicht einordnen?


Mit dem Schlüsselwort static werden Klassenvariablen bzw. - Methoden gekennzeichnet. Z.B. wenn du eine Klasse Bibliothek hast, könnte es eine Klassenmethode "druckeListe()" implementieren, die alle Buchtitel ausdruckt. Es hat also nicht jedes Objekt diese Methode, sondern die Methode gehört zur Klasse.

Zitat:
Die Dot notation erlaubt das beziehen von Methoden aus anderen Klassen. Dadurch, dass zuerst klassenname(punkt)Methode geschrieben wird.


Schreibweise ist richtig. Im Prinzip kann das sendende Objekt einem Zielobjekt eine Nachricht schicken. Man kann also Methoden auf einem anderen Objekt (oder auch Klassenmethoden einer anderen Klasse) aufrufen. Achtung: Sichtbarkeiten.


An manchen Stellen etwas kurz gehalten, aber ggf. kannst du ja einfach in deiner Literatur nochmal nachlesen.

Viele Grüße,
MaBa
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »