2009-06-20 13 views

Odpowiedz

106

modyfikatory dostępu i pomaga nam realizować Encapsulation (lub ukrywanie informacji). Informują kompilator, które inne klasy powinny mieć dostęp do definiowanego pola lub metody.

private - Tylko obecna klasa będzie miała dostęp do pola lub metody.

protected - Tylko bieżąca klasa i podklasy (a czasami także klasy o tym samym pakiecie) tej klasy będą miały dostęp do pola lub metody.

public - Każda klasa może odnosić się do pola lub wywoływać metodę.

Zakłada się, że te słowa kluczowe są używane jako część deklaracji pola lub metody w definicji klasy.

+2

Należy zauważyć, że w java członkowie tego samego pakietu mają dostęp do chronionych członków. –

+0

Tak, a Java ma również czwarty modyfikator dostępu, który jest pustym łańcuchem. Nie podanie jakiegokolwiek modyfikatora dostępu pozwoli na dostęp z dowolnej klasy na poziomie pakietu. –

+0

Podobają mi się części "kompilatora", ponieważ większość języków, które znam, wszystkie funkcje/klasy można łatwo uzyskać w środowisku wykonawczym, na przykład poprzez odbicia w .NET. Dlatego mam tendencję do stwierdzenia, że ​​te modyfikatory dostępu są w zasadzie po prostu pomocą dla programistów, którzy kierują innymi programistami pracującymi nad tym samym kodem, ukrywając pewne rzeczy. – merkuro

1

Element publiczny to taki, do którego można uzyskać dostęp z dowolnej innej klasy. Musisz tylko wiedzieć, jaki to jest obiekt i możesz użyć operatora kropki, aby uzyskać do niego dostęp. Zabezpieczenie oznacza, że ​​klasa i jej podklasy mają dostęp do zmiennej, ale nie do żadnych innych klas, muszą użyć narzędzia pobierającego/ustawiającego, aby cokolwiek zrobić ze zmienną. Prywatne oznacza, że ​​tylko ta klasa ma bezpośredni dostęp do zmiennej, wszystko inne wymaga metody/funkcji, aby uzyskać dostęp do tych danych lub je zmienić. Mam nadzieję że to pomoże.

3

Nie są to właściwie pojęcia, ale raczej konkretne słowa kluczowe, które zwykle występują (z nieco inną semantyką) w popularnych językach, takich jak C++ i Java.

Zasadniczo mają one umożliwić klasie ograniczenie dostępu do członków (pól lub funkcji). Chodzi o to, że im mniej jeden typ może uzyskać dostęp w innym typie, tym mniej zależności można utworzyć. Umożliwia to łatwiejsze zmienianie dostępnego obiektu bez wpływu na obiekty, które się do niego odwołują.

Ogólnie rzecz biorąc, publiczne oznacza, że ​​każdy może uzyskać dostęp, prywatne oznacza, że ​​tylko członkowie tej samej klasy mogą uzyskać dostęp, a ochrona oznacza, że ​​członkowie podklas są również dozwolone. Jednak każdy język dodaje do tego swoje własne rzeczy. Na przykład C++ pozwala na dziedziczenie niepubliczne. W Javie istnieje również domyślna (pakiet) poziom dostępu, a istnieją przepisy dotyczące klas wewnętrznych itp

0

Podsumowując, w programowaniu obiektowym wszystko jest zamodelowane na klasy i obiekty. Klasy zawierają właściwości i metody. Publiczne, prywatne i chronione słowa kluczowe służą do określania dostępu do tych elementów (właściwości i metod) klasy z innych klas lub innych. Dll lub nawet innych aplikacji.

4

Wszystkie trzy to modyfikatory dostępu i słowa kluczowe używane w klasie. Wszystko zadeklarowane publicznie może być używane przez dowolny obiekt w klasie lub poza klasą, zmienne w trybie prywatnym mogą być używane tylko przez obiekty w klasie i nie mogą być zmienione przez bezpośredni dostęp (ponieważ może on zmieniać funkcje, takie jak funkcja znajomego). Wszystko, co zdefiniowano w sekcji chronionej, może być używane przez klasę i ich klasę pochodną.

0

Te prywatne, publiczne i chronione nazywane są specyfikatorami dostępu.

W "Publiczny" wszyscy członkowie wewnątrz lub na zewnątrz klasy uzyskują dostęp do zmiennych.

Tylko dla członków prywatnych w klasie może uzyskać dostęp do zmiennych.

W "Protected" wszystkie elementy w klasie i członkowie klasy (Sub Class) wywodzący się z jej klasy Parent mogą uzyskać dostęp do zmiennych.

Powiązane problemy