Co to jest publiczne, prywatne i chronione w programowaniu obiektowym?Co to jest publiczne, prywatne i chronione w programowaniu obiektowym?
Odpowiedz
Są 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.
Należy zauważyć, że w java członkowie tego samego pakietu mają dostęp do chronionych członków. –
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. –
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
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.
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
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.
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ą.
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.
- 1. chronione/publiczne Klasy wewnętrzne
- 2. Na ruby, dlaczego uwzględnienie jest prywatne i rozszerzenie jest publiczne?
- 3. OpenSSL RSA prywatne i publiczne klucze
- 4. Czy publiczne i prywatne mają wpływ na układ pamięci obiektu?
- 5. Co to są urządzenia w programowaniu?
- 6. publiczne lub prywatne, to naprawdę ważne ze zmiennymi Android
- 7. Co jest powodem Object.clone() jest chronione
- 8. C++ jak utworzyć udostępniające publiczne i chronione samego członka
- 9. Kopiowanie konstruktora powinno być prywatne lub publiczne
- 10. Clojure, defn, defn-, publiczne/prywatne, domyślnie
- 11. Czy plik .pem zawiera klucze prywatne i publiczne?
- 12. Interfejs API linii papilarnych z Androidem i klucze prywatne/publiczne
- 13. Git prywatne i publiczne repo dla tego samego projektu
- 14. C# pole chronione jako prywatne, dodaj właściwość - dlaczego?
- 15. Szyfrowanie prywatne/publiczne w Pythonie z biblioteką standardową
- 16. Co oznacza "pakowanie" w programowaniu?
- 17. Co to jest mapa skrótów w programowaniu i gdzie można go używać
- 18. Co to jest NSPathStore2?
- 19. Co to jest uwierzytelnianie dwuetapowe?
- 20. Co to jest maskowanie bitowe?
- 21. Co to jest Thread.CurrentPrincipal i co robi?
- 22. Co to jest S_ISREG() i co robi?
- 23. respond_to? i chronione metody
- 24. Co to jest programowanie aspektowe?
- 25. Python: Co to jest nagłówek?
- 26. Prywatne przeglądanie jest przestarzałe w Androidzie WebView od wersji 17. Co to jest alternatywa?
- 27. Co to jest POI i co to znaczy?
- 28. Co to jest "!", "?", "_" I "." składnia w eliksiru
- 29. Co to oznacza z perspektywy bezpieczeństwa: "Uwaga: to repozytorium jest prywatne, ale opublikowana witryna będzie publiczna."
- 30. Co robi "eksportowanie" w programowaniu powłoki?
+1, jedna z tych rzeczy, które znalazłem trochę trudnym do wymówienia – fig
Czy powinienem dodać finał? –