Modyfikatory dostępu
Transkrypt
Modyfikatory dostępu
Modyfikatory dostępu Definicja Modyfikatory są to słowa kluczowe, określające prawo dostępu do elementu (zmiennej, procedury lub funkcji, ewentualnie klasy), który został zadeklarowany z ich użyciem. Używamy następujących modyfikatorów: PUBLIC PROTECTED FRIEND PROTECTED FRIEND PRIVATE Poziomy restrykcji Poziomy restrykcji określają możliwość odwoływania się do elementów klasy lub samej klasy z innych klas. Zestawienie przedstawia poziomy ograniczeń dostępu, jakie wprowadzają modyfikatory: Nazwa Poziom restrykcji Private 3 Protected 2 Friend 1 Public 0 Modyfikator Public ma najniższy poziom, gdyż nie wprowadza żadnych ograniczeń. PUBLIC - oznacza, że dostęp do elementu jest możliwy z każdego miejsca w projekcie, a nawet z innych projektów, które odwołują się do naszego. Można go używać tylko w kodzie klasy, lub modułu, ale nie wewnątrz procedur czy funkcji. Public Class Mój_program ....... Public Dim x As Integer ' system automatycznie usunie słowo DIM ....... Public Function Dodawanie (ByVal A As Integer) As Integer X=x+a End Function ....... End Class Przykład jest poprawny gdyż funkcja "Dodawanie" i zmienna X znajdują się wewnątrz klasy "Mój_program". Oba elementy są dostępne z poziomu innych modułów lub klas itd. PROTECTED - oznacza, że dostęp do elementu jest możliwy tylko wewnątrz tej samej klasy, lub klas dziedziczących. Można go używać jedynie na poziomie klas Public Class Moja_klasa ... Protected Function Dodaj (ByVal A As Integer , ByVal B As Integer) Return A + B End Function ........ End Class Przykład jest poprawny, bo funkcja jest zadeklarowana wewnątrz klasy, jednak nie będzie ona dostępna w innych klasach. FRIEND - dostęp do elementu jest możliwy tylko wewnątrz tego samego projektu. Tego słowa kluczowego używamy tylko w modułach, lub klasach i strukturach, ale nie wewnątrz procedur i funkcji Public Class Moja_klasa ....... Friend Dim x As Integer ....... Friend Function Dodaj (ByVal A As Integer , ByVal B As Integer) As Integer Return a + b End Function ....... End Class Powyższy kod będzie działać, bo słowa kluczowego Friend użyto wewnątrz klasy. PROTECTED FRIEND - elementy dostępne są tylko albo z klas dziedziczących, albo wewnątrz tego samego projektu. Może być deklarowany tylko na poziomie klasy. Public Class Moja_klasa ....... Protected Friend Dim x As Integer ....... End Class Zmienna x jest zadeklarowana poprawnie, bo wewnątrz klasy. PRIVATE - oznacza że element jest dostępny tylko wewnątrz modułu, lub klasy, lub struktury w której został zadeklarowany. Nie można go stosować wewnątrz procedur i funkcji. UWAGA ! Zmienne deklarowane bez żadnego modyfikatora domyślnie są ustawione na Private. Public Class Klasa1 ....... Private Sub Proc() Dim X As Integer End Sub ....... End Class Kod jest poprawny, bo procedura PROC jest zadeklarowana wewnątrz klasy.