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.