Książka - Java. Programowanie obiektowe
Książka - Java. Programowanie obiektowe
autor: Marek Wierzbicki
Programowanie obiektowe to sposób tworzenia programów, który przestał już być
modną nowinką. To standard, bez którego nie można sobie wyobrazić powstawania
zaawansowanych programów czy pracy zespołowej. Na świecie używa się wielu
obiektowych języków programowania. Turbo Pascal (obecnie Delphi) czy C++ to
kanony istniejące od ponad 10 lat, często wykorzystywane do tworzenia zaawansowanych
aplikacji oraz w szkołach czy uczelniach jako modelowe języki obiektowe. Jednak
te najpopularniejsze standardy przestają być wystarczające. Ograniczenia wynikające
z ich korzeni uniemożliwiają dalszy rozwój tych języków. A pojawiające się wolne
miejsce wypełnia JAVA. Stworzony od podstaw, nowoczesny, bezpieczny, niezależny
od typu komputera i systemu operacyjnego, w pełni obiektowy język programowania.
W zamyśle miał służyć do obsługi sterowników lodówek, pralek czy magnetowidów.
Największą popularność zdobył jako język do tworzenia apletów i serwletów,
czyli programów funkcjonujących w strukturach internetu. Występuje też jako
język wewnętrzny większości poważnych projektów, działających na wielu różnych
platformach (na przykład serwery SQL Oracle czy Sybase intensywnie korzystają
z jej możliwości). Obecnie zaczyna też trafiać do telefonów komórkowych,
przede wszystkim jako narzędzie do tworzenia gier i innych gadżetów we wszystkomających
telefonach komórkowych.
Ze względu na swoje wszechstronne możliwości i bezpieczeństwo staje się standardem,
którego trudno nie zauważać. Każdy nowoczesny informatyk powinien więc znać JAVĘ
i jej obiektowe cechy. Ta książka umożliwi dogłębne poznanie metod programowania
obiektowego i spowoduje, że czytelnik będzie mógł stosować tą ideę w sposób
najbardziej profesjonalny.

Książka: Java. Programowanie obiektowe
Marek Wierzbicki
Wstęp
Programowanie obiektowe powstało, z punktu widzenia komputerowej skali czasu,
przed kilkoma pokoleniami. Przestało już być modną nowinką (pojawiającą się
wyłącznie w książkach czy księgarniach internetowych) i stało się obowiązkowym
standardem wszystkich programistów i projektantów. Jednak mimo to wiele osób ma
trudności z pełnym zrozumieniem i wszechstronnym stosowaniem tej metodologii.
Zarówno programiści z dużym stażem, jak i zupełnie początkujący ciągle mają
problemy z efektywnym wykorzystaniem możliwości oferowanych przez obiektowy
model programowania. Wynika to z kilku przyczyn. Pierwsza to wymuszona
popularność narzędzi, które nie umożliwiają korzystania z elementów obiektowości.
Ciągle rozwijane i konserwowane są programy (kadrowe, księgowe, magazynowe itp.),
których tworzenie rozpoczęte było jeszcze w latach osiemdziesiątych. Obciążone to
jest koniecznością używania języków popularnych w tamtym okresie (najczęściej
jest to CLIPPER), które nie miały ani odrobiny obiektowości. Większość programistów
jest tak zaangażowana w projekty proceduralne, że nawet jeśli korzystają z narzędzi
obiektowych, robią to bardzo pobieżnie, nie wykorzystując ich możliwości. Druga
przesłanka to spora popularność języków nazywanych obiektowymi, lecz mających
z prawdziwą obiektowością niewiele wspólnego. Klasycznym przykładem jest
Visual Basic czy JavaScript, które oferują tylko szczątkowe cechy programowania
obiektowego. Korzystając z takich narzędzi, użytkownik ma niewielkie szanse
na poznanie i zrozumienie kwestii obiektowości. Trzeci problem to system nauki.
Ciągle w wielu szkołach i na uczelniach do nauki wykorzystuje się bardzo dobry,
lecz proceduralny Turbo Pascal. W księgarniach ciągle są dostępne książki do nauki
tego języka pokazujące, jak tworzyć programy w starym poczciwym DOS-ie, mimo tego
że producent zarówno jego, jak i Turbo Pascala dawno zaprzestał wspierania tych
technologii. Te i inne niewymienione przyczyny powodują, że wiele osób nie wie,
jak w pełni wykorzystać zalety programowania obiektowego. Mam nadzieję, że dzięki
tej książce wejście w nowy, obiektowy świat tworzenia programów stanie się łatwiejsze.
Na świecie używa się wielu obiektowych języków programowania. Delphi czy C++ nieraz już posłużyły do stworzenia profesjonalnych i rozbudowanych aplikacji. Jednak te najpopularniejsze standardy przestają być wystarczające. Ograniczenia wynikające z ich proceduralnych korzeni uniemożliwiają ich dalszy rozwój. Pojawiające się wolne miejsce wypełnia Java - stworzony od podstaw, nowoczesny, bezpieczny, niezależny od typu komputera i systemu operacyjnego, w pełni obiektowy język programowania. Posiada wiele zalet, które gwarantują zajęcie czołowego miejsca zarówno w procesie nauczania, jak i tworzenia rzeczywistych programów. Z punktu widzenia dystrybutora i odbiorcy oprogramowania główną zaletą jest możliwość całkowitego przenoszenia programów między różnymi komputerami i systemami operacyjnymi. Cecha ta, dostępna dla standardowego ANSI C na poziomie kodu źródłowego, w Javie dotyczy programów wykonywalnych. Oznacza to, że raz skompilowany program pracuje poprawnie na wszystkich maszynach (nie trzeba tworzyć różnych wersji wynikowych dla każdego typu komputera). Do najważniejszych zalet widocznych w czasie tworzenia oprogramowania należy bardzo silna obiektowość i efektywne zabezpieczenia przed popełnianiem błędów w czasie pisania i uruchamiania kodu. Dzięki tym cechom Java doskonale nadaje się do wykorzystywania zarówno jako język do nauki, jak i do szybkiego i bezpiecznego tworzenia użytecznych i profesjonalnych aplikacji.
Książka, którą masz w ręce, stanowi wprowadzenie w świat programowania obiektowego w Javie. Mimo niezbyt wielkiej objętości zawiera cechy, które spowodują, że stanie się przydatna zarówno dla początkujących, jak i zaawansowanych programistów i projektantów. Osoby rozpoczynające przygodę z Javą znajdą tu wszystkie informacje potrzebne do zrozumienia nawet najbardziej skomplikowanych mechanizmów obiektowości w tym języku. Dla osób z większym doświadczeniem ta część książki będzie doskonałym kompendium wiedzy, do którego będzie można wielokrotnie wracać. Dla bardzo zaawansowanych programistów w tej książce też znajdzie się wiele ciekawych fragmentów. Programowanie sterowane zdarzeniami czy wielowątkowość to naturalne cechy aplikacji obiektowych. Rozdziały te omawiają jednak nie tylko sposób realizacji tych modeli programowania. Dodatkowo pokazują wiele przykładów tworzenia szybkiego i efektywnego (zarówno pod względem szybkości, jak i wielkości) kodu wynikowego. Cóż z tego, że w teorii niektóre konstrukcje są bardzo proste do implementacji, jeśli pracują efektywnie tylko na najszybszych komputerach. W praktyce program powinien być prosty do napisania, łatwy do zanalizowania i uruchomienia oraz szybki podczas pracy, nawet na niezbyt nowoczesnym sprzęcie. Wszystkie te cechy są możliwe do osiągnięcia, choć nie w banalny sposób. Książka ta ma umożliwić Ci poznanie również tych aspektów tworzenia programów.
Książka przeplatana jest przykładami, które ułatwią praktyczne poznanie elementów programowania obiektowego omawianych w teorii. Dodatkowo wiele konstrukcji popartych jest przykładami ich zastosowania w realnych aplikacjach. Mimo tego, że wprowadzam dużo przykładów, wymagam od Ciebie aktywnej współpracy. Nie jest to książka, którą można czytać, tylko przyjmując podaną tam wiedzę. Do pełnego jej zrozumienia niezbędne jest samodzielne testowanie działania pokazanych przeze mnie konstrukcji. Najlepiej w czasie czytania przeprowadzać wszystkie doświadczenia, które opisuję, oraz sprawdzać warianty rozwiązań niepodanych przeze mnie. Na szczęście wszystkie przykłady są na tyle krótkie (rzadko kiedy przekraczają kilkanaście wierszy), że nie ma potrzeby umieszczania ich w postaci elektronicznej. Powiem więcej, brak wersji elektronicznej przykładów pozwoli na szybsze ich opanowanie, ponieważ już w trakcie ich tworzenia można rozważać inną postać klas niż te zaproponowane w książce. Tak więc brak sugestii typu "Spróbuj rozwiązać pokazany przeze mnie przykład w inny (konkretny) sposób" powoduje większą otwartość i daje nadzieję na szersze poznanie i zrozumienie tematu.
Większość przykładów i problemów zaprezentowanych w mojej książce została stworzona i przetestowana w ramach rzeczywistych aplikacji. Niektóre fragmenty powstały jako przykłady mające ułatwić początkującym programistom pracującym w moim zespole zrozumienie trudniejszych problemów. Jeden rozdział i podrozdział powstały jako rozwinięcie artykułów opublikowanych kilka lat temu w "PCkurierze". Mam nadzieję, że moje ponaddziesięcioletnie doświadczenie zarówno w tworzeniu aplikacji obiektowych, jak i upowszechnianiu tego sposobu programowania zaowocuje łatwością czytania tej książki i skutecznością w korzystaniu z jej zawartości.
Książka: Java. Programowanie obiektowe
Marek Wierzbicki
Literatura
Wykaz książek i artykułów, z którymi powinno sie zapoznać, aby dogłębnie
zrozumieć ideę programowania obiektowego w Javie:
- Allen W.E., Rubenking N.J, Languages: Initializing Data Fields, "PC magazine", 28 maja 1991;
- Coad P., Nicola J., Object-Oriented Programming, Pearson Education 1993;
- Eckel B., Thinking in Java, wydanie 3, Helion 2003;
- Naughton P., Java. Podręcznik języka programowania, Nakom 1999;
- Hunt B., Practical Object Oriented Programming. 38 Guidelines for Making OOP Work, "EDN" 6 lipca 1992;
- Gamma E., Helm R., Johnson R., Vlissides J., Wzorce projektowe, WNT 2005;
- Graham I., Metody obiektowe w teorii i w praktyce, WNT 2004;
- Keoght J., Giannini M., OOP Demystified, McGraw-Hill Osborn Media 2004;
- Lis M., Praktyczny kurs Java, Helion 2004;
- Myrcha J., Programowanie obiektowe, "PCkurier" 2/1991;
- Myrcha J., Programowanie obiektowe w jezyku C++, "Enter" 1 - 6/1993;
- Reynolds-Heartler R.A., Microsoft Visual Basic .NET oraz Microsoft Visual C# .NET w programowaniu obiektowym, RM 2003;
- Rider J.W., Rubenking N.J., Languages: Transporting Constructors, "PC magazine", 25 czerwca 1991;
- Schildt H., Java. Kompendium programisty, Helion 2005;
- Szklanowski M., Niestraszne RMI - zdalne wywoływanie procedur w Javie, "PCkurier" 13/2000;
- Wierzbicki M., Programowanie obiektowe w Turbo Pascalu 7.0 z wykorzystaniem Turbo Vision, Lupus 1993;
- Wierzbicki M., Klasy dołączane dynamicznie, "PCkurier" 22/2001;
- Wierzbicki M., Zrób to sam, "PCkurier" 11/2001.