Schlüsselworte Ohne Modifizierer gleichbedeutend mit protected?

mrbela

Bekanntes Mitglied
... wenn man den Modifier eine Membervariable weglässt, dann ist dies gleichzusetzen mit "protected", oder?

Java:
public class foo {
int a;
// ....
}
 
Zuletzt bearbeitet von einem Moderator:
Unterscheidet es zu protected? Wie könnte man denn dann den Modifier nennen, den der Compiler autoatisch einsetzt, wenn man keinen explizit angegeben hat?

Ich dachte es sei ein protected. Denn dies bedeutet ja eigtl. genau das, was Du geschrieben hast: Sichtbarkeit nur innerhalb des Pakets und nicht in anderen Paketen.
 
Wie könnte man denn dann den Modifier nennen, den der Compiler autoatisch einsetzt, wenn man keinen explizit angegeben hat?
Man nennt den oft package-private.
Das ist nämlich auch genau die Eigenschaft die ihn von protected unterscheidet.

Ein Attribut, das package-private ist, ist nur in Subklassen des selben Packages sichtbar. Ein protected Attribut ist auch außerhalb des packages in Subklassen sichtbar.
 
Man nennt den oft package-private.
Das ist nämlich auch genau die Eigenschaft die ihn von protected unterscheidet.

Ein Attribut, das package-private ist, ist nur in Subklassen des selben Packages sichtbar. Ein protected Attribut ist auch außerhalb des packages in Subklassen sichtbar.

Package-Private ist generell von allen Klassen im selben Package erreichbar (nicht nur aus Subclasses).
Daher wird es oft für Implementierungsspezifica genutzt um Daten / Methoden zwischen Klassen der Implementierung aufrufbar zu machen aber nach Außen zu "verstecken".
 
War vielleicht etwas unglücklich ausgedrückt, ich bin da auf den Unterschied zwischen package-private und protected eingegangen.
 

Zurück
Oben