Różnica między domyślnym specyfikatorem dostępu a specyfikatorem bezpiecznego dostępu w Javie
Próbowałem nauczyć się javy i kiedy przejrzałem specyfikatory dostępu, miałem wątpliwości. Jaka jest różnica między specyfikatorem standardowym, jeśli nie został określony, a specyfikatorem bezpiecznego dostępu w języku Java?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
podręcznik
http://java.sun.com/docs/books ... .html
Java może być dla Ciebie pomocna.
Anonimowy użytkownik
Potwierdzenie od:
... Sekcja Specyfikacja języka Java 6.6
http://docs.oracle.com/javase/ ... s-6.6
.
EDYCJA: Zgodnie z prośbą Michaela Schmeisera (aby inni nie musieli czytać komentarzy ani podążać za linkiem, aby to znaleźć): Wszyscy członkowie interfejsu są domyślnie publiczni. W rzeczywistości określenie dowolnego specyfikatora dostępu dla elementu interfejsu innego niż jest błędem kompilacji (chociaż żaden z domyślnych specyfikatorów dostępu nie jest dostępem publicznym). Oto pełny zestaw reguł z JLS dla członków klas (patrz link powyżej, aby zapoznać się z regułami dotyczącymi pakietów, klas i interfejsów najwyższego poziomu oraz tablic):
Element członkowski (klasa, interfejs, pole lub metoda) typu referencyjnego (klasa, interfejs lub tablica) lub konstruktor typu klasy jest dostępny tylko wtedy, gdy typ jest dostępny, a element członkowski lub konstruktor jest zadeklarowany w celu umożliwienia dostępu:
Anonimowy użytkownik
Potwierdzenie od:
Specyfikator bezpiecznego dostępu - istnieją dwa sposoby uzyskania dostępu do chronionych danych
>
Domyślny specyfikator dostępu - domyślnie tylko jeden sposób uzyskiwania dostępu do danych
>
Domyślnie dostęp jest ograniczony tylko do poziomu pakietu, nawet po rozszerzeniu klasy, która ma elementy domyślne, nie będziemy mogli uzyskać dostępu.
Przykład
>
Aby sprawdzić, czy istnieje domyślne słowo kluczowe remove protected dla int x w ProvideProtected, zostanie wygenerowany błąd kompilacji.
Anonimowy użytkownik
Potwierdzenie od:
Dostęp domyślny: - Domyślnie nie jest to słowo kluczowe. Jest stosowany, jeśli nie określono modyfikatora dostępu. Jest to w zasadzie modyfikator poziomu pakietu. Wszystko, co ma taki dostęp, jest widoczne w tym samym pakiecie.
Różnicę można teraz lepiej wyjaśnić na przykładzie
pakiet p1
pakiet p1
Teraz dochodzimy do podklasy w innym pakiecie
pakiet p2
nie zwróci błędu.
Różnica polega więc na tym, że podklasy metody nie można wywołać przez odniesienie do nadklasy. Albo możesz zadzwonić bezpośrednio, albo możesz użyć super.
Zauważ, że musi być częścią metody niestatycznej.
Anonimowy użytkownik
Potwierdzenie od:
Element członkowski jest dostępny w
wszystkie inne klasy tego samego pakietu
;
Element członkowski jest dostępny w
wszystkie inne klasy tego samego pakietu
i
w dowolnej innej klasie dowolnego innego pakietu, o ile ta klasa rozszerza klasę zawierającą chroniony element członkowski.