Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen?

klhlubek

Mitglied
Meine Frage steht oben und ich stelle sie, da man eine Variable in einer Default-Methode und ebenfalls in einer statischen Methode in Schnittstellen beliebig wann ändern kann.
Falls man jedoch versucht irgendwelche Modifizierer an die Variable zu hängen, dann wird nur final als gültiger Modifizierer genommen.

Heißt das jetzt, dass Variablen in den beiden Szenarien nur eine Sichtbarkeit von default besitzen dürfen und wenn man das möchte auch noch eine Konstante sein können oder ist das nun anders und ich hab mir das falsch gedacht?en

EDIT: Entschuldigt mich bitte, aber ich habe vergessen das Präfix ,,Schnittstellen" zu setzten.
 
Schnittstellen setzten Variablen auf Final, welches sie zu einer Konstanten macht.
Wenn du eine Variable in einer Methode erzeugst so ist sie mit privare deklariert, dass heißt sie kann nur in der Klasse aufgerufen werden.

Vergebt mir meine Fehler ich bin neu an Bord 😀
 
Könntest du das biete näher erläutern, da ich nur weiß, dass der Compiler alle Variablen implizit zu public static final macht und, dass Variablen in Methoden private sind habe ich nie gehört und kann ich eher weniger glauben.

Es wäre also nett, wenn du deine Antwort näher begründen könntest.
Danke für die Antwort übrigens 😉
 
@klhlubek

Wenn ich dich richtig verstanden habe, vermischst du hier ein paar Sachen.

Es gibt drei "Arten" von Modifizierern:
- Sichtbarkeit (public, private, protected)
- Kontext (static oder halt nix)
- Veränderlichkeit (final)

- Variablen, die innerhalb einer Methode definiert werden, sind auch nur innerhalb dieser Methode gültig. Ist sie beendet, wird auch die Variable gelöscht / der Speicherplatz dafür freigegeben. Stichwort Scope. Aus diesem Grund kannst du innerhalb einer Methode auch nicht mit private oder protected arbeiten.
- die Methode gibt den Kontext (statisch/nicht statisch) bereits vor. Ich kann aus einer statischen Methode heraus nicht auf Objekt-Variablen zugreifen. Andersherum geht es allerdings.

- public/protected/private bezieht sich auf die Sichtbarkeit von Variablen und Methoden _außerhalb_ der Klasse.

- und final wiederum besagt halt einfach nur, dass der Wert nicht mehr verändert werden darf, wenn er einmal gesetzt wurde.

Und der "Typ" einer Variable ist im Allgemeinen der Datentyp, also String, int, Object, whatever.
 

Neue Themen


Zurück
Oben