Sgn i Sqr...

Linki


» Dzieci to nie książeczki do kolorowania. Nie da się wypełnić ich naszymi ulubionymi kolorami.
»
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
»
23
»
i obalenie gabinetu ŚwitalskiegoW dniu 14 IV 1929 r...
»
Inspektorzy stwierdzają, że żadna z tych dwu planet nie dorosła do przyjęcia do Federacji...
»
‶George Patterson zachowuje pogodę ducha” czy też rąbnąć szkolnym warsztatem naprawy obuwia, co ma gorliwych uczniów i nie uskarża się na...
»
wych, abym na tej podstawie mógł sobie wszystko uprzy- tomnić i obmyślić, na co przygotowany mam wracać do Rzymu...
»
- ludzie i tu i tam są ludźmi - i nieraz, szczególnie w gorącej atmosferze jakiejś kawiarenki, były wyjątkowo burdy, ale ani narodowość, ani przynależność do...
»
okresowe
»
Gdy zapukała do drzwi, otworzyło się małe okienko i młoda dziewczyna, blondynka, wysunęła okrągłą wesołą twarzyczkę...
»
i ++) 10 g l u t S t r o k e C h a r a c t e r ( f o n t , t e x t [ i ] ) ; } 3...

Dzieci to nie książeczki do kolorowania. Nie da się wypełnić ich naszymi ulubionymi kolorami.

......................................................................................................................... 649
String............................................................................................................................... 649
Time................................................................................................................................ 650
VarType .......................................................................................................................... 650
Typ Variant zastąpiony przez Object........................................................................................ 650
! $.
4Q\F\KCđ
6YQT\GPKGMNCU
Możliwość definiowania klas i tworzenia ich egzemplarzy (instancji) jest jedną z naj-
ważniejszych cech każdego języka zorientowanego obiektowo. Aż do chwili obecnej
Visual Basic nie obsługiwał w pełni obiektowości. Mimo że moduły w VB6 nazywane
były modułami klas, tak naprawdę były interfejsami w sensie technologii COM (ang.
Component Object Model). Oznacza to, że VB6 nie obsługiwał idiomu klasy; nie umoż-
liwiał korzystania z innej bardzo pożytecznej cechy programowania obiektowego —
dziedziczenia.
Zasadniczą różnicą pomiędzy interfejsami, a klasami jest dziedziczenie. Każda imple-
mentacja interfejsu VB6 (modułu klasy) wymagała wprowadzenia wszystkich publicz-
nych metod dla tego interfejsu. Klasy, w przeciwieństwie do interfejsu, obsługują dziedzi-
czenie. Dziedziczenie oznacza, że mogą istnieć podklasy zawierające pola, właściwości,
metody i zdarzenia klasy nadrzędnej. Tworząc nowe klasy, możesz je wykorzystywać do
rozszerzania istniejących klas bazowych.
Zarówno zorientowane obiektowo klasy, jak i interfejsy COM udostępniają twórcom
oprogramowania potężne marzędzia do tworzenia i zarządzania zaawansowanymi pro-
jektami. Obie technologie są bardzo przydatne i obie zostały zaimplementowane w Vi-
sual Basic .NET. Dodatkowo, Microsoft udoskonalił i poprawił interfejsy i opisy klas
w celu zapobiegnięcia niejednoznaczności podczas ich stosowania. Obie technologie po-
siadają odmienne zasady składni.
W tym rozdziale zostanie przedstawiona zmieniona składnia interfejsów oraz właściwości
nowej definicji klasy, włączając w to dziedziczenie, polimorfizm, przeciążanie i prze-
słanianie metod. Dodatkowo, rozdział ten zawiera kolejne przykłady wykorzystania ob-
sługi wyjątków i wielowątkowości w Visual Basic .NET.
Klasa w Visual Basic .NET nie jest klasą VB6. Klasy VB6 są w VB .NET deklarowane
i definiowane przy użyciu słowa kluczowego . Klasy VB .NET są definiowa-
nymi przez użytkownika typami agregacyjnymi, umożliwiającymi dziedziczenie. Różnią
się one od interfejsów COM, które są dokładnie tym, czym w VB6 były moduły klasy.
236
Część II Zaawansowane programowanie zorientowane obiektowo
Wszystkie klasy w Visual Basic .NET są definiowane w pliku .VB (w przeciwieństwie
do pliku .CLS), a w pliku takim może być zawarta jedna lub kilka klas. (Klasy, struktury
i moduły mogą być zgromadzone w jednym pliku). Podstawowa składnia klasy jest na-
stępująca:
Jeśli przez przypadek popełnisz błąd podczas deklarowania klasy, Visual Studio.NET
IDE podkreśli linią falistą miejsce, w którym ten błąd występuje (zobacz rysunek 7.1)
Visual Studio .NET
IDE zaznacza linią
falistą miejsca
zawierające błąd
Najczęściej klasy poprzedzone są specyfikatorem dostępu , możesz jednak wyko-
rzystać inne specyfikatory. W podrozdziale „Używanie specyfikatorów dostępu do klas”
znajdziesz więcej informacji na ten temat.
Instrukcje i tworzą jednostkę hermetyzacji dla klasy. Wszystkie skła-
dowe klasy umieszczane są pomiędzy tymi instrukcjami.
Możesz dodawać dowolną liczbę pól, właściwości, metod i zdarzeń w celu zdefiniowania
klasy, która ma spełniać określone wymagania w dziedzinie rozwiązania jakiegoś pro-
blemu. Jakkolwiek liczba składowych w klasie może być dowolna, jednak przestrzeganie
następujących zasad w większości przypadków pozwoli na zachowanie przejrzystości
w kodzie i uproszczenie tworzonych konstrukcji.
Klasy powinny składać się z maksymalnie sześciu składowych publicznych,
włączając w to właściwości i metody. Liczba składowych niepublicznych może być
większa, gdyż nie wpływają one na prostotę korzystania z klasy przez użytkownika.
W ogólnym przypadku jakiekolwiek składowe niepubliczne powinny być chronione
i wirtualne — posiadając modyfikator .
Rozdział 7. Tworzenie klas
237
Pola, właściwości, zdarzenia wspólnie określane są mianem składowych. Termin skła-
dowa odnosi się po prostu do czegoś, co zostało zdefiniowane jako część klasy.
Jak we wszystkich regułach, także i tu są wyjątki. Istnieje zasada „wystarczająco dobry”,
wprowadzona przez Grady Boocha, mówiąca, że jeśli różnorodność oraz liczba składo-
wych jest rozsądna i wystarczająca, to liczba ta jest wystarczająco dobra. W książce Ja-
mesa Coplien „Zaawansowany C++” zostały przedstawione zaawansowane zagadnienia,
które łamią ogólne zasady. Kolejnym przykładem wyjątku od opisanych powyżej reguł
są klasy ze wszystkimi składowymi typu , jak np. klasa w CLR.
Jak zostało wspomniane wcześniej, podstawowe wskazówki do definiowania klas są do-
brym punktem startowym, istnieją jednak inne zasady i motywacje, którymi można się
kierować podczas tworzenia klas. Na przykład technika refaktoringu „Zastosuj obiekt pa-
rametryczny”, której zastosowanie ulepsza przekazywanie parametrów, wymaga utwo-
rzenia dodatkowych klas.
W Visual Basic .NET występuje pięć specyfikatorów dostępu, opisanych w kolejnych
podrozdziałach.
Specyfikator dostępu , zastosowany na poziomie klasy, jest najczęściej używa-
nym specyfikatorem. Klasy publiczne są to klasy, do których przewidziany jest dostęp
przez każdego użytkownika. Specyfikator dostępu występuje w kodzie po atry-
butach i bezpośrednio przed słowem kluczowym . (W rozdziale 12., „Definiowa-
nie atrybutów”, znajdziesz więcej informacji o atrybutach).
Specyfikator ma zastosowanie wyłącznie w klasach zagnieżdżonych. Klasy
zagnieżdżone są są dostępne wyłącznie w danej klasie i w klasach potomnych. Nie mo-
żesz zdefiniować składników egzemplarza klasy zagnieżdżonej z widocznością większą
niż definicja klasy.

Powered by MyScript