Modyfikatory dostępu (zwane również regułami określania zakresu) określają, jaki kod może uzyskać dostęp do elementu - to znaczy, jaki kod ma uprawnienia do jego odczytu lub zapisu. W poprzednich wersjach Visual Basic istniały trzy typy klas. Zostały one przeniesione do platformy .NET. W każdym z nich .NET pozwala na dostęp tylko do kodu:
- Prywatny - w ramach tego samego modułu, klasy lub struktury.
- Przyjaciel - w ramach tego samego zgromadzenia.
- Publiczny - w dowolnym miejscu w tym samym projekcie, z innych projektów, które odwołują się do projektu, oraz z dowolnego zestawu zbudowanego z projektu. Innymi słowy, każdy kod, który może go znaleźć.
VB.NET dodał także półtora nowego.
- Chroniony
- Chroniony przyjaciel
„Połowa” to dlatego, że Protected Friend to połączenie nowej klasy Protected i starej klasy Friend.
Modyfikatory chronionego i chronionego przyjaciela są konieczne, ponieważ VB.NET implementuje ostatnie wymaganie dotyczące OOP, którego brakuje VB: Dziedzictwo.
Wcześniej od VB.NET, pobożni i pogardliwi programiści C ++ i Java umniejszali VB, ponieważ według nich był on „w pełni zorientowany obiektowo”. Dlaczego? Poprzednie wersje nie były dziedziczone. Dziedziczenie umożliwia obiektom współdzielenie ich interfejsów i / lub implementacji w hierarchii. Innymi słowy, dziedziczenie umożliwia jeden obiekt oprogramowania, który przyjmuje wszystkie metody i właściwości innego obiektu.
Jest to często nazywane relacją „jest-a”.
- Ciężarówka „jest” pojazdem.
- Kwadratowy kształt „jest-a”.
- Pies „jest” ssakiem.
Chodzi o to, że bardziej ogólne i szeroko stosowane metody i właściwości są zdefiniowane klasy „nadrzędne”, a one są bardziej szczegółowe w klasach „podrzędnych” (często nazywane podklasami). „Ssak” to bardziej ogólny opis niż „pies”. Wieloryby są ssakami.
Dużą zaletą jest to, że możesz uporządkować swój kod, więc musisz tylko napisać kod, który robi coś, co wiele obiektów musi zrobić raz w obiekcie nadrzędnym. Wszyscy „pracownicy” muszą mieć przypisany „numer pracownika”. Bardziej szczegółowy kod może być częścią klas potomnych. Tylko pracownicy pracujący w biurze głównym muszą mieć przypisany klucz karty pracownika.
Ta nowa zdolność dziedziczenia wymaga jednak nowych zasad. Jeśli nowa klasa oparta jest na starej, Protected jest modyfikatorem dostępu, który odzwierciedla tę relację. Dostęp do kodu chronionego można uzyskać tylko z tej samej klasy lub z klasy pochodzącej z tej klasy. Nie chcesz, aby klucze do kart drzwi pracownika były przypisywane do kogokolwiek oprócz pracowników.
Jak wspomniano, Chroniony przyjaciel to połączenie dostępu zarówno Przyjaciela, jak i Chronionego. Dostęp do elementów kodu można uzyskać albo z klas pochodnych, albo z tego samego zestawu, albo z obu. Protected Friend może być używany do tworzenia bibliotek klas, ponieważ kod, który uzyskuje dostęp do twojego kodu, musi znajdować się tylko w tym samym zestawie.
Ale Przyjaciel ma również ten dostęp, więc dlaczego miałbyś używać Chronionego Przyjaciela? Powodem jest to, że znajomego można użyć w pliku źródłowym, Przestrzeń nazw, Interfejs, Moduł, klasa lub struktura. Ale Chronionego Przyjaciela można używać tylko na zajęciach. Protected Friend jest tym, czego potrzebujesz do budowania własnych bibliotek obiektów. Friend jest przeznaczony tylko do trudnych sytuacji w kodzie, w których wymagany jest szeroki dostęp do zestawu.