Elementarz Java #0 – wprowadzenie
Hej,
Miło mi Ciebie powitać, w gronie czytelników projektu #ElementarzJava, który mam okazję realizować w ramach mojego bloga „Strefa Kodera”. Jeśli tutaj jesteś, to pewnie interesujesz się tematyką tworzenia oprogramowania, a Twoim głównym narzędziem, czyli językiem programowania jest Java. Mam nadzieję, że wszystko się zgadza i bez żadnych przeszkód możemy przejść do dalszej ekscytującej przygody, którą będzie wspólna eksploracja i odkrywanie dotąd „nieznanych” zakamarków kodu. Zanim jednak to uczynimy, pozwól, że napiszę kilka słów o sobie, czyli Twoim prywatnym przewodniku podczas tej ekscytującej wyprawy.
Jeśli jesteś stałym gościem mojego bloga, to pewnie już wszystko wiesz, więc śmiało możesz ominąć ten akapit i przejść dalej… Jeśli jednak tak nie jest, to mam nadzieję, że szybko nadrobimy zaległości. Przechodząc do meritum, nazywam się Łukasz Dudziński i jak pewnie się domyślasz, jestem programistą, blogerem i licencjonowanym przewodnikiem — to oczywiście żart, takich uprawnień jeszcze nie mam, ale kto wie? Może w przyszłości się to zmieni. Na co dzień zajmuję się zawodowo tworzeniem aplikacji mobilnych — a przyjemniej robię to w chwili, w której piszę te słowa. Jak pewnie wiesz, branża IT zmienia się bardzo dynamicznie, a technologia to tylko narzędzie, do którego zbytnio się nie przywiązuję. Ciebie też zachęcam do takiego podejścia. Poza tym mogę pochwalić się jeszcze ukończeniem szkolenia Oracle z Javy oraz uzyskaniem stosownego certyfikatu Oracle Certified Associate Java Programmer I. Swego czasu przygotowałem też ciekawą notkę na ten temat, możesz tam przeczytać o tym, jak taki egzamin wygląda oraz jak się do niego przygotowywałem. Gorąco zapraszam!
Uff… to część formalną mam nadzieję, że mamy już za sobą, a jeśli była ona dla Ciebie niewystarczająca, to odsyłam do nieco dłuższej biografii mojej skromnej osoby, gdzie również zapoznasz się z tym, co dzieje się tutaj na blogu. Mam nadzieję, że przy okazji skłoniłem Cię do pozostania w gronie „stałych czytelników”?
Po krótkim wstępie, przenieśmy się na Indonezyjską wyspę „Jawa” leżącą w Azji Południowo-Wschodniej, a należącą do grupy Wielkich Wysp Sundajskich.
Elementarz Java — co to właściwie jest?
Idea opracowania i przygotowania omawianej tutaj serii technicznych wpisów poświęconej Javie kiełkowała w mojej głowie ładnych parę miesięcy. Nie chciałem tworzyć kolejnego „kursu” czy też opisywać koncepcje rozwoju projektów z wykorzystaniem przeróżnych framework’ów i innych popularnych narzędzi. Moim celem było stworzenie czegoś unikalnego, a zarazem maksymalnie merytorycznego i użytecznego dla Ciebie. Postanowiłem więc wykorzystać materiały, które latami gromadziłem podczas przeróżnych studenckich zajęć oraz przygotować serię wpisów, gdzie ich motywem przewodnim będzie omówienie konkretnych instrukcji programistycznych, które możesz znaleźć podczas pracy z Javą w wersji SE (ang. Standard Edition). Dodatkowo kolejnym założeniem było to, aby materiały te, były maksymalnie usystematyzowane, a ich odbiorcy mogli w jak najprostszy sposób, zapoznać się, ze wszystkimi poruszanymi zagadnieniami. Jako główną strukturę, a zarazem listę poruszanych tematów, wykorzystałem oficjalny sylabus Oracle przygotowany dla osób przystępujących do egzaminu OCAJP (ang. Oracle Certified Associate Java Programmer I). Stąd też serię tą szczególnie polecam, jeśli w Twoich najbliższych planach — lub też tych nieco dalszych — jest przystąpienie do podobnego egzaminu certyfikacyjnego. Jeśli jednak masz trochę inne zamiary, a jednym z celów, jaki chcesz osiągnąć, jest usystematyzowanie wiedzy na temat programowania w Java, to seria ta również okaże się dla Ciebie strzałem w dziesiątkę. Innymi słowy, jeśli chcesz zostać lepszym inżynierem oprogramowania to czas wystartować z dalszą lekturą!
Elementarz Java to dziewięć technicznych artykułów, poruszających tematy dotyczące: kompilacji, zmiennych, struktury klasy, pakietów, typów danych, konstrukcji warunkowych, pętli, hermetyzacji, przysłaniania metod, polimorfizmu, dziedziczenia, rzutowania, wyjątków, API Java i wiele innych… Każde zagadnienie zostało omówione na przykładzie fragmentów kodu, które możesz sam sobie uruchomić, przeanalizować oraz samodzielnie wprowadzić stosowne zmiany tak, aby zrozumieć dany mechanizm działania. Wszystko maksymalnie zwięzłe i poukładane w odpowiedniej kolejności — dokładnie tak, jak w klasycznym elementarzu. Stąd też nazwa „Elementarz Java”.
Jak powstawał #ElementarzJava?
Całkiem niedawno na moim blogu pojawił się artykuł o tym jak zostałem certyfikowanym programistą Java – omówiłem na jego łamach proces przygotowań do egzaminu certyfikacyjnego Oracle Certified Associate Java Programmer I oraz przebieg takiego testu. To właśnie wtedy, zrodził się w mojej głowie pomysł, aby wykorzystać notatki i dostarczyć Wam materiał, który będzie w przystępny sposób przedstawiał zagadnienia wymagane podczas procesu certyfikacji.
Dobierając tematykę poszczególnych wpisów, kierowałem się głównie wymaganiami, jakie stawiane są przez Oracle przed osobami chcącymi zaliczyć wspomniany wcześniej certyfikat. Przygotowanie jednego takiego artykułu — jest ich w sumie dziewięć — to masa pracy. Są to obszerne materiały opisujące wiele różnych zagadnień i specyficznych konstrukcji, o których pewnie mało kto słyszał. Czy wiesz, że jeśli stała nie zostanie zainicjalizowana w momencie deklaracji, to spowoduje, że podczas kompilacji zmienna taka nie będzie traktowana jako stała? Co za tym idzie? Jej użycie w instrukcji case
spowoduje błąd kompilacji. To tylko jeden z wielu przykładów, jakie znajdziesz w przygotowanych przeze mnie wpisach.
Cała seria została podzielona na dziewięć różnych tematów. Na początku skupiłem się na omówieniu podstaw Javy, następnie typów danych, operatorów i konstrukcji warunkowych, tablic, pętli, metod i hermetyzacji, dziedziczenia, obsługi wyjątków i na koniec wybranych klas z API Java. Wszystko to odpowiada dokładnie tematyce egzaminu certyfikacyjnego OCAJP.
Każde zagadnienie omówione jest na przykładzie konkretnego fragmentu kodu. Dokładnie opisuję, w jaki sposób dana konstrukcja programistyczna jest interpretowana przez kompilator oraz jaki będzie efekt jej wywołania. Przykłady możesz sobie oczywiście samodzielnie skopiować, zmodyfikować i zweryfikować swoje przypuszczenia. Nie ukrywam, że jest to bardzo fajna zabawa, a przy okazji można się naprawdę dużo nauczyć.
Co już trzeba umieć?
Jak już wspomniałem wcześniej, #ElementarzJava nie jest kursem programowania w języku Java. Omawiam tutaj specyfikację tej technologii, zakładając, że czytelnik ma już pewną wiedzę na temat programowania obiektowego (dziedziczenia, polimorfizmu itp.), wie, w jaki sposób funkcjonują proste konstrukcje programistyczne (zmienne, stałe, pętle, instrukcje warunkowe), a przede wszystkim miał już jakąś styczność z Javą.
Do lektury zachęcam również wszystkich nieco mniej zaawansowanych. Wiele zagadnień może się w jej trakcie wyjaśnić, a w razie wątpliwości zachęcam do zadawania pytań w sekcji komentarzy. Jest ona dostępna pod każdym z opublikowanych artykułów. Nie trzeba być tutaj Senior Java Developerem — sam certyfikat OCAJP nie jest nawet przeznaczony dla takich osób — aby zrozumieć treść materiałów i czerpać z nich nowe przydatne informacje. Na ich łamach, co prawda nie wyjaśniam pojęć takich jak polimorfizm, dziedziczenie i innych podobnych, ale myślę, że nawet jeśli ich nie znasz to i tak podczas analizy zamieszczonych przykładów, zorientuje się, o co dokładnie chodzi.
Spis treści
Wszystkie zamieszczone wpisy, polecam przerabiać w kolejności, w jakiej zostały one pierwotnie opublikowane. Jeśli jednak z jakichś względów interesuje Cię konkretny temat, z którym chcesz się zapoznać, pomijając inne, to poniżej zamieszczam pełny spis treści wraz z krótką listą zagadnień, jakie zostały poruszone w danym artykule. Opublikowana tutaj lista, została również umieszczona na początku każdego z podlinkowanych materiałów. Możesz więc w szybki sposób przechodzić do wybranego artykułu bez konieczności zbędnego klikania.
- Podstawy języka Java (kompilacja, zmienne, struktura klasy, pakiety),
- Typy danych w języku Java (deklaracja i inicjalizacja zmiennych, różnica między typami, garbage collection, typy opakowujące),
- Operatory i konstrukcje warunkowe w Java (użycie operatorów, porównywanie obiektów, instrukcje:
if
,if/else
,switch
), - Tablice (charakterystyka tablic, tablice jedno i wielowymiarowe),
- Pętle (tworzenie pętli, instrukcje
break
icontinue
, etykiety), - Metody oraz hermetyzacja (metody statyczne, przeciążanie metod, konstruktory, modyfikatory widoczności, hermetyzacja elementów klasy, parametry),
- Dziedziczenie (implementacja, przysłanianie metod, polimorfizm, rzutowanie),
- Obsługa wyjątków (kategorie wyjątków, łapanie wyjątków, klasy wyjątków),
- API Java (
String
,StringBuilder
, data i czas, kolekcje, wyrażenia lambda).
Podsumowanie
Mam nadzieję, że ten krótki wstęp, udzielił Ci odpowiedzi na pytania dotyczące pracy z Elementarzem Java. Życzę Ci samych programistycznych sukcesów i dużo wytrwałości podczas nauki. Mam nadzieję, że jeszcze spotkamy się, choćby podczas innych akcji edukacyjnych, jakie będą w przyszłości realizowane na blogu „Strefa Kodera”. Tymczasem nie zabieram już więcej czasu, miłej nauki, a w razie pytań proszę o komentarz pod tym materiałem.
Ahoj przygodo. Wyprawę czas zacząć!