Co jest publiczne, prywatne i chronione w programowaniu obiektowym?
class
oop
definition
access-modifiers
Majaczenie alkoholowe
źródło
źródło
Odpowiedzi:
Są modyfikatorami dostępu i pomagają nam wdrażać enkapsulację (lub ukrywanie informacji). Informują kompilator, które inne klasy powinny mieć dostęp do definiowanego pola lub metody.
private
- Tylko bieżąca klasa będzie miała dostęp do pola lub metody.protected
- Tylko bieżąca klasa i podklasy (a czasami także klasy z tym samym pakietem) tej klasy będą miały dostęp do pola lub metody.public
- Każda klasa może odwoływać się do pola lub wywołać metodę.Zakłada się, że te słowa kluczowe są używane jako część deklaracji pola lub metody w definicji klasy.
źródło
Wszystkie trzy są modyfikatorami dostępu i słowami kluczowymi używanymi w klasie. Wszystko, co zadeklarowano jako publiczne, może być użyte przez dowolny obiekt w klasie lub poza klasą, zmienne prywatne mogą być używane tylko przez obiekty w klasie i nie mogą być zmieniane przez bezpośredni dostęp (ponieważ można to zmienić za pomocą funkcji takich jak funkcja zaprzyjaźniona) .Wszystko zdefiniowane w sekcji protected może być używane przez klasę i klasę pochodną.
źródło
W rzeczywistości nie są to 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 elementów członkowskich (pól lub funkcji). Chodzi o to, że im mniej jeden typ ma dostęp do innego typu, tym mniej zależności można utworzyć. Pozwala to na łatwiejszą zmianę obiektu, do którego uzyskano dostęp, bez wpływu na obiekty, które się do niego odnoszą.
Ogólnie rzecz biorąc, publiczny oznacza, że każdy ma dostęp, prywatny oznacza, że dostęp mają tylko członkowie tej samej klasy, a chroniony oznacza, że członkowie podklas są również dozwoleni. Jednak każdy język dodaje do tego swoje własne elementy. Na przykład C ++ umożliwia dziedziczenie niepubliczne. W Javie istnieje również domyślny poziom dostępu (pakiet), istnieją reguły dotyczące klas wewnętrznych itp.
źródło
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. Chronione oznacza, że klasa i jej podklasy mają dostęp do zmiennej, ale nie do żadnych innych klas, muszą użyć metody pobierającej / ustawiającej, aby cokolwiek zrobić ze zmienną. Prywatny 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.
źródło
jak wyżej, ale jakościowo:
im mniej dostępu zapewniasz, tym mniej szczegółów implementacji wycieka z twoich obiektów. mniej tego rodzaju wycieków oznacza większą elastyczność (inaczej „luźniejsze sprzężenie”) w zakresie zmiany sposobu implementacji obiektu bez przerywania pracy klientów obiektu. to naprawdę podstawowa rzecz do zrozumienia.
źródło
Podsumowując, w programowaniu obiektowym wszystko jest modelowane 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 członkowskich (właściwości i metod) klasy z innych klas lub innych plików .dll, a nawet innych aplikacji.
źródło