Jeśli napiszę:
void doThis(){
System.out.println("Hello Stackoverflow.");
}
jaki jest domyślny zakres doThis()
?
Publiczny? Chroniony? Prywatny?
Jeśli napiszę:
void doThis(){
System.out.println("Hello Stackoverflow.");
}
jaki jest domyślny zakres doThis()
?
Publiczny? Chroniony? Prywatny?
Odpowiedzi:
Domyślnym zakresem jest pakiet-prywatny. Wszystkie klasy w tym samym pakiecie mają dostęp do metody / pola / klasy. Pakiet prywatny jest bardziej rygorystyczny niż zakres chroniony i publiczny, ale bardziej liberalny niż zakres prywatny.
Więcej informacji:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html
Do wszystkiego, co zdefiniowano jako prywatny pakiet, można uzyskać dostęp przez samą klasę, inne klasy w tym samym pakiecie, ale nie poza pakietem i nie przez podklasy.
Na tej stronie znajduje się przydatna tabela modyfikatorów poziomu dostępu ...
Bez modyfikatora dostępu element członkowski klasy jest dostępny w całym pakiecie, w którym jest zadeklarowany. Więcej informacji można znaleźć w specyfikacji języka Java, §6.6.
Składowe interfejsu są zawsze publicznie dostępne, niezależnie od tego, czy zostały jawnie zadeklarowane, czy nie.
Zakres domyślny to „domyślny”. To dziwne - zobacz te referencje, aby uzyskać więcej informacji.
Jeśli nie podajesz żadnego modyfikatora do swojej metody, to domyślnie będzie to modyfikator Default, który ma zasięg w pakiecie.
więcej informacji można znaleźć http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java