[ Pobierz całość w formacie PDF ]
Delphi bardziej zaawansowane
Jak dotąd mówiliśmy o programowaniu strukturalnym, proceduralnym, ale nie wspomnieli-
śmy o obiektach. Idea programowania obiektowego jest teraz niezwykle istotna oraz bardzo
popularna. Wi¹kszość j¹zyków wysokiego poziomu, np. Delphi, C++, C#, Java, Python, PHP
i inne, umożliwia tworzenie obiektów. Na przykład dobry skądinąd C nie umożliwiał progra-
mowania obiektowego. I to jest wielka wada tych j¹zyków w obecnych czasach.
RozdziaÅ‚ niniejszy poÅ›wi¹cony b¹dzie przede wszystkim opisowi tworzenia klas w Delphi.
Omówimy także nowoÅ›ci wprowadzone do Delphi za sprawÄ… .NET, a także zwrócimy uwag¹
na wiele narz¹dzi i opcji Delphi zwiÄ…zanych z edycjÄ… kodu zródÅ‚owego.
W tym rozdziale:
nauczysz si¹ korzystać z edytora kodu,
poznasz opcje edytora kodu,
dowiesz si¹, czym jest programowanie obiektowe i jak tworzyć klasy,
poznasz nowe elementy j¹zyka programowania wprowadzone za sprawÄ… .NET,
zapoznasz si¹ z podstawowymi ideami programowania na platformie .NET,
dowiesz si¹, czym sÄ… wyjÄ…tki,
zostanÄ… Ci przedstawione podstawowe narz¹dzia doÅ‚Ä…czone do pakietu .NET
Framework.
214 Część I
Na czym polega programowanie obiektowe?
Programy rozrastajÄ… si¹ coraz bardziej i bardziej. Tak samo jak kiedyÅ› nie wystarczaÅ‚a idea
programowania proceduralnego, teraz nie wystarcza już programowanie strukturalne.
Koncepcja programowania obiektowego pojawiÅ‚a si¹ już w latach 60. za sprawÄ… j¹zyka Simula 67
zaprojektowanego przez naukowców z Oslo w celu przeprowadzania symulacji zachowania
si¹ statków. Jednakże idea programowania obiektowego swojÄ… popularyzacj¹ zawdzi¹cza j¹-
zykowi SmallTalk. PoÅ‚owa lat 80. to czas, kiedy programowanie obiektowe staÅ‚o si¹ dominu-
jÄ…cÄ… technikÄ… głównie za sprawÄ… C++. Wtedy to też w wielu innych j¹zykach pojawiÅ‚a si¹
możliwość tworzenia obiektów.
Można powiedzieć, że klasa to paczuszka , pewien element programu, który wykonuje jakieś
funkcje. Klasa zawiera metody (procedury i funkcje) współdziałające ze sobą w celu wykonania
jakiegoÅ› zadania. Programowanie obiektowe przyczyniÅ‚o si¹ do tego, że takie podprogramy
jak klasy mogą być wykorzystywane w wielu innych projektach ułatwia to jeszcze bardziej
zarzÄ…dzanie i konserwacj¹ kodu.
Załóżmy, że napisaÅ‚eÅ› klas¹ do obsÅ‚ugi poczty (wysyÅ‚anie i odbieranie). Klasa może mieć proce-
dury (połącz), (wyślij e-mail), (rozłącz). Z kolei procedura
może wywoÅ‚ywać innÄ…, np. (która też jest procedurÄ… znajdujÄ…cÄ… si¹ w klasie), wyÅ›wie-
tlającą błąd w razie niepowodzenia i zapisującą odpowiedni tekst w dzienniku programu (czyli,
inaczej mówiÄ…c, w logach plikach z rozszerzeniem *.log). Teraz takÄ… klas¹ możesz wyko-
rzystać w wielu swoich aplikacjach wystarczy skopiować fragment kodu i już gotowa jest
obsÅ‚uga bÅ‚¹dów, Å‚Ä…czenie itp. TakÄ… klas¹ możesz udost¹pnić innym użytkownikom lub swoim
współpracownikom. Taki inny użytkownik nie musi wiedzieć, jak działa klasa ważne jest dla
niego, co ona robi (wysyła e-maile). Użytkownik musi jedynie wiedzieć, że istnieje metoda
, która połączy go z danym serwerem oraz musi mieć świadomość obecności kilku innych
procedur. To wszystko nie interesuje go obsÅ‚uga bÅ‚¹dów nie musi nawet zdawać sobie
sprawy z jej istnienia.
Można by oczywiście utworzyć nowy moduł, a w module umieścić także procedury ,
oraz , i reszt¹ potrzebnego kodu. Jednak w takim przypadku metody
i zmienne (zmienne także mogą być elementami danej klasy) nie oddziałują na siebie w takim
stopniu. PrzykÅ‚adowo, użytkownik korzystajÄ…cy z takiego kodu b¹dzie miaÅ‚ dost¹p do tych
zmiennych, do których nie powinien go mieć. B¹dzie mógÅ‚ też wywoÅ‚ać swobodnie procedur¹
a nie powinien, bo może to spowodować niepożądane skutki. Dzi¹ki klasom możesz
sprawić, iż taka procedura nie b¹dzie dost¹pna poza klasÄ…; jej elementy (zmienne) też
b¹dÄ… nie do odczytania przez przyszÅ‚ego użytkownika.
Biblioteki wizualne
W rzeczywistości biblioteki takie jak VCL.NET (ang. Visual Component Library) to szereg mo-
dułów i klas współpracujÄ…cych ze sobÄ…. Dzi¹ki idei programowania obiektowego to wszystko
dziaÅ‚a bardzo sprawnie i jest nad wyraz czytelne. Głównie dzi¹ki funkcji dziedziczenia, która
Rozdział 4. Delphi bardziej zaawansowane 215
polega na rozszerzeniu funkcjonalności klas. Klasa potomna może dziedziczyć po klasie ba-
[ Pobierz całość w formacie PDF ]