• Nie Znaleziono Wyników

Private a Protected Private

N/A
N/A
Protected

Academic year: 2021

Share "Private a Protected Private"

Copied!
2
0
0

Pełen tekst

(1)

z1 - Private a Protected

Copyright © 2017, mgr inż. Janusz Bonarowski

1

Private a Protected

Private – słowo kluczowe przypisujące dostęp do zmiennej wyłącznie z wnętrza klasy.

Protected – słowo kluczowe przypisujące dostęp do zmiennej z wnętrza klasy lub z klasy pochodnej.

Zadanie

Wykonać aplikację obliczającą objętość prostopadłościanu. Utworzyć klasę bazową Prostokat z właściwościami Długosc i Szerokosc oraz klasę potomną Prostopadloscian o właściwości Wysokosc i metodzie Objetosc, zwracającej objętość prostopadłościanu

Kod pliku klas

Public Class Prostokat

Private _Dlugosc As Single Private _Szerokosc As Single Public Property Dlugosc As Single Get

Return _Dlugosc End Get

Set(value As Single) _Dlugosc = value End Set

End Property

Public Property Szerokosc As Single Get

Return _Szerokosc End Get

Set(value As Single) _Szerokosc = value End Set

End Property End Class

Public Class Prostopadloscian Inherits Prostokat

Private _Wysokosc As Single Public Property Wysokosc As Single Get

Return _Wysokosc End Get

Set(value As Single) _Wysokosc = value End Set

End Property

Public Function Objetosc() As Single 'Objetosc = _Dlugosc _

' * _Szerokosc _ ' * _Wysokosc

Objetosc = MyBase.Dlugosc _ * MyBase.Szerokosc _ * _Wysokosc

End Function End Class

Kod pliku formularza

Private Sub Button1_Click(sender As Object, _

e As EventArgs) Handles Button1.Click Dim MojProstopadloscian As New Prostopadloscian MojProstopadloscian.Dlugosc = CSng(txtDlugosc.Text) MojProstopadloscian.Szerokosc = _

CSng(txtSzerokosc.Text) MojProstopadloscian.Wysokosc = CSng(txtWysokosc.Text) txtPole.Text = MojProstopadloscian.Objetosc.ToString End Sub

Na uwagę zasługuje wiersz zakomentowany w funkcji Objetosc

'Objetosc = _Dlugosc * _Szerokosc * _Wysokosc

Jeśli usuniemy znak komentarza z tej linii – zmienne _Dlugosc i _Szerokosc będą wyróżnione jako błędne. Po prostu funkcja „nie widzi” tych zmiennych, ponieważ są zadeklarowane w klasie bazowej słowem kluczowym Private. Dlatego, aby użyć wartości Długości i Szerokości – musimy się do nich odwołać poprzez obiekt bazowy.

Objetosc = MyBase.Dlugosc * MyBase.Szerokosc * _Wysokosc

(2)

z1 - Private a Protected

Copyright © 2017, mgr inż. Janusz Bonarowski

2

Jeśli w klasie bazowej zadeklarujemy zmienne lokalne _Dlugosc i _Szerokosc za pomocą słowa kluczowego Protected – zmienne te będą dostępne nie tylko w tej klasie, w której zostały

zadeklarowane lecz także w klasie potomnej.

Kod pliku klas

Public Class Prostokat

Protected _Dlugosc As Single Protected _Szerokosc As Single Public Property Dlugosc As Single Get

Return _Dlugosc End Get

Set(value As Single) _Dlugosc = value End Set

End Property

Public Property Szerokosc As Single Get

Return _Szerokosc End Get

Set(value As Single) _Szerokosc = value End Set

End Property End Class

Public Class Prostopadloscian Inherits Prostokat

Private _Wysokosc As Single Public Property Wysokosc As Single Get

Return _Wysokosc End Get

Set(value As Single) _Wysokosc = value End Set

End Property

Public Function Objetosc() As Single Objetosc = _Dlugosc _

* _Szerokosc _ * _Wysokosc End Function

End Class

Kod pliku formularza

Private Sub Button1_Click(sender As Object, _

e As EventArgs) Handles Button1.Click Dim MojProstopadloscian As New Prostopadloscian MojProstopadloscian.Dlugosc = CSng(txtDlugosc.Text) MojProstopadloscian.Szerokosc = _

CSng(txtSzerokosc.Text) MojProstopadloscian.Wysokosc = CSng(txtWysokosc.Text) txtPole.Text = MojProstopadloscian.Objetosc.ToString End Sub

Kod formularza i jego postać - w obu przypadkach pozostaje ten sam, rys. 1.

Rysunek 1

Cytaty

Powiązane dokumenty

• Przy kolejnych wywoªaniach funkcji cin.getline() nie ma tego problemu, bo ta funkcja pobiera znak ko«ca linii z bufora wej±ciowego.... • Po wywoªaniu funkcji dodaj_ksiazke()

Perl - Manipulowanie tablic, zmienne lokalne, funkcje. Marcin

Zmodyfikować program z zadania PERL 2.3+, w taki sposób, by część generująca przymiotniki była zawarta w funkcji. Pętla wczytująca kolejne przymiotniki ma wykonywać

I Słowo kluczowe sub poprzedza nazwę funkcji, którą ustalamy sami; nazwy powinny kojarzyć się działaniem tworzonej funkcji. I Polecenie return wewnętrz funkcji, natychmiast

◮ Słowo kluczowe sub poprzedza nazwę funkcji, którą ustalamy sami; nazwy powinny kojarzyć się działaniem tworzonej funkcji. ◮ Polecenie return wewnętrz funkcji,

Składniki typu public oraz protected klasy bazowej stają się składnikami private klasy potomnej. public → private protected

nie mają nazwy – dostęp do takich zmiennych możliwy jest jedynie poprzez ich adres w pamięci (poprzez zmienne wskaźnikowe),... Zmienne

2 Rada Monitoringu Społecznego (2013): Diagnoza społeczna: zintegrowana baza danych. Wickham: ggplot2: elegant graphics for data analysis.. Ko al da..