Hej,
mhhh, bedeuten "final" nicht sowas wie eine "konstante"?
final
bedeutet dass ein Feld (also die Referenz auf ein Objekt, respektive bei primitiven Datentypen wie int, long, char, usw. der Inhalt des Feldes selbst) _nach_ dem instanzieren des Objektes nicht mehr veränderbar ist. Echte Konstanten werden in Java durch static final
deklariert. Also das Feld ist nicht veränderbar und gilt für die Klasse, also auch für alle Instanzen der Klasse. Diese Variante ist seit Java 1.5 seitdem is enum
gibt, etwas aus der Mode gekommen, hat aber in bestimmten Fällen durchaus seine Berechtigung.
Konstanten kann man aber nicht mehr ändern, wie kann ich versteckte Variablen deklarieren wo ich aber "intern" die werte ändern kann, ohne das es eine Instanz kann?
Mit private
.
Habe es mit "private" versucht, ich kanbn trotzem einen Wert speichern -mit der Instanz/Objekt-.
Versteh ich nicht.
Wie du dies gemacht hast, bzw. was du genau meinst und was nicht geklappt hat, hast du noch nicht erklärt.
Aber wo ich ja gerade einen Profi habe, was hat eigentlich dieses "void" oder "static" zu bedeuten?
Zu void
habe ich ja bereits etwas geschrieben, zu static
ebenfalls.
Genauso wie es statische Felder geben kann, kann es auch statische Methoden geben. So z.B. die Methode Math.max( int a, int b )
. Die Funktionalität von max() hängt nicht von irgendwelchen Eigenschaften einer Instanz von Math ab, sondern ausschließlich von dem was man in die Methode reinsteckt. Daher kann man auf die Methode direkt über die Klasse zugreifen und nicht erst über ein etwa instanziertes Math-Objekt (zumal ich sowieso glaube mich erinnern zu können, dass Math nicht instanzierbar ist).
Mal (im Tutorial) wird in einer Klasse eine Methode mit:
public void int zahl();
Falls das wirklich so in deinem Tutorial gestanden haben sollte, wirf es weg! Eine Methode kann immer nur genau _einen_ oder _keinen_ Rückgabetyp haben, entweder int
oder void
.
oder
public static int zahl();
Das wäre eine statische Methode die dir ein int
zurückgibt. Nochmal zum Verständnis: static
ist ein Modifizierer, int
ein Rückgabetyp, void
ein weiterer Modifizierer, der keinen Rückgabetyp zulässt.
Leider wird es in meinen Tutorial nicht erklärt und mich ärgert es wenn ich nicht verstehe warum die es so schreiben.
Welches Tutorial verwendest Du? Ich würde es gerne auf meine persönliche Blacklist setzen. Mein Tip lautet nachwievor, dir entweder ein gutes Buch zur OOP oder ein gutes Buch zu Java zu besorgen. Java-Insel und Javahandbuch sind charmant geschriebene und umfassende Werke zu Java. Zum lernen find ich beide nur bedingt geeignet. Ein Buch welches ich sehr gerne empfehle ist Grundkurs Programmieren in Java. Vielleicht solltest du die 30 Eur investieren, anstatt dich weiterhin mit deinem Tutorial rumzuplagen.
Beste Grüße
Biesterfeld
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz