Java_exPress_001_2008_08.pdf

(3097 KB) Pobierz
JAVA exPress
J J A A V V A A e e x x P P r r e e s s s s
Numer 1 (1) Sierpień 2008
oraz
A także:
161636736.023.png 161636736.024.png 161636736.025.png 161636736.026.png 161636736.001.png 161636736.002.png 161636736.003.png
Maszynista
Hello World!
Oddaję w Wasze ręce pierwszy numer JAVA exPress. Zupełnie za dar-
mo, bez żadnych ukrytych opłat możecie przeczytać ciekawe artykuły
o Javie, a także o technologiach i narzędziach z nią związanych.
Gazeta będzie miała charakter cykliczny. Przewiduje publikację kolej-
nych numerów co 3 miesiące. Jeśli chcesz dostawać gazetę mailem,
zapisz się do grupy http://groups.google.com/group/javaexpress lub na
Polish Java Podcast (http://grzegorzduda.blogspot.com), gdzie także będą pojawiały się informacje
o kolejnych wydaniach JAVA exPress.
Chciałbym, aby ta gazeta jak najlepiej Wam służyła, dlatego proszę o komentarze i wskazówki co
należy poprawić. Przesyłajcie je na adres JavaExpressTeam@gmail.com
Każdy numer będzie podzielony na działy: Maszynista - czyli kilka słów ode mnie, Megafon - krót-
kie informacje i ogłoszenia, Poczekalnia - kącik dla początkujących, Bocznica - temat poboczny nu-
meru, Konduktor - jakośc, wzorce i metodyki, Dworzec Główny - temat główny numeru,
Maszynownia - narzędzia i biblioteki, Więcej węgla - przyszłość gazety i inne inicjatywy.
Jeśli chciałbyś zostać autorem lub pomóc w redagowaniu gazety, także zapraszam do kontaktu na
powyższy adres. Wśród autorów tego i kolejnego numeru rozlosuję jedną darmową wejściówkę na
tegoroczną konferencję Java Develpers Day oraz 50% zniżkę na JAOO.
Chciałem także podziękować wszystkim, dzięki którym powstał ten numer. A więc autorom
artykułów: Bartkowi Kuczyńskiemu, Jakubowi Jurkiewiczowi, Mariuszowi Sieraczkiewiczowi,
Jackiwi Pospychale i Markowi Klisiowi. Chciałem także podziękować Billowi Merlavage, który za
darmo udostępnił zdjęcie na okładkę (więcej zdjęć na http://www.merlavageimages.com/).
Pozdrawiam,
Grzegorz Duda
P P l l a a n n p p o o d d r r ó óż y y
M ASZYNISTA : H ELLO W ORLD !............................................................................................1
M EGAFON : JAOO, JDD, J AVA R EBEL , S EMMLE C ODE , I NTELLI J IDEA................................2
P OCZEKALNIA : K UBEK KAWY - CZYLI ALTERNATYWNY KURS J AVY .......................................3
B OCZNICA : W WALCE O LEPSZĄ JAKOŚĆ ODPLUSKWIANIE .................................................8
K ONDUKTOR : P ORZĄDKI W KODZIE , CZYLI NIE TYLKO O REFAKTORINGU ............................12
D WORZEC G ŁÓWNY : E CLIPSE RCP...................................................................................15
D WORZEC G ŁÓWNY : N ET B EANS P LATFORM .....................................................................21
W IĘCEJ WĘGLA : Z OSTAŃ AUTOREM ...................................................................................25
W IĘCEJ WĘGLA : O FERTA DLA SPONSORÓW ........................................................................25
W IĘCEJ WĘGLA : G OOGLE D EVELOPER D AY .......................................................................25
J J A A V V A A e e x x P P r r e e s s s s 1
Sierpień 2008
161636736.004.png 161636736.005.png 161636736.006.png
Megafon
napisać IDE dla programi-
sty Java ponieważ oprócz
Javy znajdziecie w nim
wsparcie dla wielu innych
technologii. Także dla ostatnio modnych Groovy,
Scala, Flex czy Seam. I w przeciwieństwie do in-
nych modnych IDE, wszystko dostajecie w pakie-
cie, bez konieczności szukania odpowiedniego
pluginu.
J AVA R EBEL DLA BRĄZOWEGO PASA
Z NIŻKA NA K ONFERENCJĘ JAOO
JavaRebel to plugin do JVM, który umożliwia
wprowadzanie zmian w klasach Javy podczas dzia-
łania aplikacji, bez konieczności jej restartu.
Wszyscy posiadacze brązowych pasów na Java-
BlackBelt są nagradzani darmową licencją, a więc
kolejny powód żeby zdać kilka egzaminów na JBB
(http://www.javablackbelt.com/).
Więcej informacji o JavaRebel znajdziecie na stro-
nie http://www.zeroturnaround.com/javarebel/.
Na przełomie września i października (28 wrzesień
- 3 październik) odbędzie się w Danii konferencja
JAOO (http://jaoo.dk/conference/). Jest to jedna z
najlepszych konferencji informatycznych na świe-
cie. Można na niej posłuchać wykładów takich
sław jak: Martin Fowler, Bill Venners, James Ward,
Jeff Sutherland, Kirk Pepperdine, Linda Rising, Ne-
al Ford, Ola Bini i wielu innych.
W ŁASNY F IND B UGS
Znacie produkt FindBugs? Brakuje Wam w nim
pewnych rzeczy? A więc warto przyjrzeć się Sem-
mleCode (http://semmle.com/), który udostępnia
język zapytań podobny do SQL, dzięki któremu
możecie napisać swoje własne inspekcje.
Dla naszych czytelników przygotowaliśmy specjal-
ną . Podczas rejestracji na konferencję
należy uzyć kodu promocyjnego "
".
Wśród autorów artykułów dla JAVA exPress zosta-
nie rozlosowana 50% zniżka na JAOO. Więcej na
ten temat w dziale "Więcej węgla".
K ONFERENCJA JDD W K RAKOWIE
Już 16 października Kraków stanie się stolicą Javo-
wą Polski. A to za sprawą już trzeciej edycji konfe-
rencji Java Developers' Day (http://08.jdd.org.pl/).
W tym roku po raz pierwszy będą prowadzone
dwa wykłady jednocześcnie. A więc będzie można
wybrać, co nas bardziej interesuje.
Agenda jeszcze nie jest znana, ale już wiadomo, że
do Krakowa przyjedzie Ted Neward i Neal Ford.
Są to światowej klasy prelegenci, a więc warto
przyjechać do Krakowa w październiku.
I tutaj także niespodzianka. Wśród autorów artyku-
łów dla JAVA exPress zostanie rozlosowana 1 bez-
płatna wejściówka na JDD. Więcej informacji w
dziale "Więcej węgla".
Z NIŻKA NA I NTELI J IDEA
Drugą zniżkę jaką mo-
żemy Wam zaofero-
wać, to
na zakup licencji IntelliJ IDEA
(http://www.jetbrains.com/?java_GRZEGORZDU
DA). Jako kod promocyjny należy użyć .
Jest to najlepsze IDE do Javy, a raczej powinienem
J J A A V V A A e e x x P P r r e e s s s s 2
Sierpień 2008
161636736.007.png 161636736.008.png 161636736.009.png 161636736.010.png 161636736.011.png 161636736.012.png 161636736.013.png 161636736.014.png 161636736.015.png 161636736.016.png
Poczekalnia
K K u u b b e e k k K K a a w w y y c c z z y y l l i i a a l l t t e e r r n n a a t t y y w w n n y y k k u u r r s s J J a a v v y y
Bartek Kuczyński
Java - rodzaj kawy produkowany na wyspie
Jawa. Słowo to jest też slangowym okresleniem
kawy w Stanach Zjednoczonych. W Indonezji
zwrot Kopi Java nie oznacza kawy jako takiej, a
rodzaj mocnej, czarnej i bardzo słodkiej kawy
podawanej z mielonymi ziarnami.
Kawa została sprowadzona na Jawę przez
Duńczyków w XVIIw. Pierwotnie była to kawa gat-
unku Arabica, ale po pladze w 1880 roku została za-
stąpiona najpierw odmianą Liberica, a potem
Robusta. Obecnie określenia Java używa się tylko
w stosunku do niektórych odmian produkowanych
na wyspie.
rządzania interfejsem użytkownika czy też zasady
zdroworozsądkowego programowania.
Od początku będę też odsyłał Cię do innych
źródeł. Ma to na celu wyrobienie w Tobie umiejęt-
ności poszukiwania wiedzy. Jeżeli chcesz złaczyć
swoją przyszłość z programowaniem to bardzo
ważne jest abyś potrafił szybko i sprawnie
wyszukiwać rozwiązania problemów. Nie os-
zukujmy się większość z nich już dawno rozwiąz-
ano, a czas poświęcony na znalezienie tego
rozwiązania jest zazwyczaj krótszy niż
wymyślanie koła od nowa. Tu muszę podkreślić,
że samo wymyślanie koła od nowa nie zawsze jest
złe, w końcu nasze koło może być bardziej okrągłe.
Czego nie znajdziesz w tym kursie. Nie będę
odowływał się do innych języków porgramowania.
Nie będę męczył cię przydługimi listingami kodu.
Nie będę używał techniczno komputerowego
bełokotu w ilościach większych niż jest to po-
trzebne.
Skoro już ustaliliśmy co i jak czas wziąć się do
pracy.
W STĘP
Cześć właśnie dorwałeś się do alternatywnego
kursu języka Java. Ja nazywam się... nie inaczej. W
internecie spotkasz mnie pod xwką Koziołek. Os-
obiście możesz mnie spotkać na imprezach or-
aganizowanych przez warszawski JUG
Poniższy kurs jest wynikiem długiej praktyki z
językiem Java i różnymi materiałami
edukacyjnymi dotyczącymi tegoż języka. Przez ten
czas zebrało mi się wiele pomysłów oraz myślałem
czego brakuje mi w tradycyjnych kursach. Na ich
podstawie powstał ten oto kurs. Żeby ułatwić nam
pracę na początek omówię jak organizujemy pracę.
Wychodzę z założenia, że nigdy nie pro-
gramowałeś lub bardzo mało programowałeś.
Jeżeli jesteś bardziej doświadczonym programistą
lub znasz już jakiś język programowania w stopniu
eksperckim to z góry przepraszam za uproszczenia.
W pierwszej części kursu przybliżę Ci czym jest
Java, jakie są podstawowe koncepcje i pojęcia z
nią związane. Opowiem o maszynie wirtualnej i
przybliżę pojęcia takie jak klasa, obiekt, interfejs.
Zaprezentuję też narzędzia pozwalające na łatwia i
przyjemną pracę i naukę. W drugiej części poz-
namy podstawowe elementy składni języka.
Będzie to najnudniejsza i najbardziej najbardziej
sztampowa część kursu. Niestety nie da się tego
pominąć. W kolejnych częściach zajmiemy się już
poważnymi sprawami. Poznasz zasady przekazy-
wania i wysyłania danych w programach, sposób za-
C ZĘŚĆ 1: K UBEK J AVY
O TWIERAMY PUSZKĘ Z KAWĄ .
Tak jak kawa (zazwyczaj w wersji żużel –
kawa pół na pół z wodą) jest paliwem program-
istów tak język java stał się jednym z na-
jważnieszych składników współczesnego świata
komputerów. Czym jest java? Jest to zorientowany
obiektowo, kompilowany i uruchamiany na
maszynie wirtualnej javy (JVM) język programow-
ania. Trochę skomplikowane? Rozpracujmy tą
definicję krok po kroku.
Java jest zorientowana obiektowo. Oznacza to,
że w języku tym posługujemy się pojęciami takimi
jak obiekt, klasa, interfejs. Java nie jest językiem
wpełni obiektowym ponieważ istnieje w niej grupa
typów prostych (pierwonych), które nie są obiek-
tami. Zaraz opowiem co to są obiekty.
Java jest kompilowana to znaczy, że zanim
uruchomimy nasz program jego kod jest pod-
dawany specjalnemu procesowi, który tłumaczy
nasze wypociny na coś zrozumiałego dla kom-
J J A A V V A A e e x x P P r r e e s s s s 3
Sierpień 2008
161636736.017.png 161636736.018.png 161636736.019.png
Poczekalnia
putera. Szczegółow co to jest kompilator poszukaj
sobie w Googlu.
Java uruchamiana jest na Maszynie Virtualnnej
Javy (JVM od ang. Java Virtual Machine). Jest to
najważniejsza i najbardziej rozpoznawalna cecha
javy. Maszyna wirtualna to specajlu program, który
znajduje się pomiędzy naszym kodem, a systemem
operacyjnym. Jej zadaniem jest ujednolicenie inter-
fejsu tak aby nasz kod mógł zostać napisany raz i
uruchamiany na każdym komuperze niezależnie od
jego architektury. Jest to bardzo skomplikowane po-
jęcie, ale spróbuję je uprościć w następujący
sposób.
Zapewne spotkaleś się z uniwersalnymi czyt-
nikami kart pamięci na USB. Te małe urządzenia
pozwalają na przeglądanie zawartości karty nie za-
leżnie jakiego jest typu. Złaczka karty jest „ma-
gicznie” zamieniana na zwykłe USB. Jeżeli teraz
nasz kod jest tym portem USB, a systemy oper-
acyjne są reprezentowane przez różne typy kart to
JVM jest naszym czytnikiem, który pozwala nam
na stworzenie kodu raz i nie martwienie się jakiego
typu jest karta, którą chcemy przeczytać. Mam
nadzieję, że łapiesz o co chodzi.
Obiecałem napisać coś o obiektach no to do
dzieła.
[modyfikator dostępu] [abstract] class NazwaKlasy{
// definicja pól i metod
}
Nasz wzorcowy samochód:
public class Samochod{
public Color kolor = new Color(255,255,255);
// pole kolor określa kolor samochodu
public void jedzie(){
//kod odpowiedzialny za jazdę samochodu
}
}
Klasa może implementować Interfejs. Oznacza
to, że klasa ma wszystkie metody, zachowania,
definiowane przez interfejs. Klasa musi imple-
mentować wszystkie metody interfejsu. Tu jednak
rodzi się pytanie co zrobić jeżeli nie chcemy imple-
mentować wszystkich metod? Można oczywiście
zaimplementować je w taki sposób by zwracały
wartości null. Jednak nie jest to dobre rozwiązanie.
Można powiedzieć nawet więcej, jest to najgorsze
z możliwych rozwiązań, ponieważ ukrywa fakt
braku implementacji metod. Znacznie lepszym
rozwiązaniem jest uczynienie danej klasy abstrak-
cyjną.
Klasa abstrakcyjna zawiera w sobie zwykłe
metody, czyli takie które mają jawną imple-
mentację, oraz metody abstrakcyjne. Metoda ab-
strakcyjna nie ma implementacji. Poniżej przykład
klasy abstrakcyjnej:
E SENCJA AROMATU
No właśnie czas przyswoić sobie trzy podsta-
wowe pojęcia związane z językiem java. Są to
Klasa, Obiekt i Interfejs. Nie będę bawił się w
rozwlekłe opisywanie co i jak. Czas skorzystać ze
źródeł. W swoim czasie popełniłem „klasyczny”
kurs javy na 4programmers.net (http://4program-
mers.net/Java/Podstawy_javy)
public abstract class KlasaAbstrakcyjna {
public int pole;
public abstract void metodaAbstrakcyjna();
public void metodaZwykła(){
//Kod metody
}
}
Po co to wszystko? Dochodzimy do bardzo
ważnego elementu programowania obiektowego
jakim jest dziedziczenie. Załóżmy, że chcemy
stworzyć klika klas odpowiadających różnym
markom i typom samochodów. Interesuje nas to że
samochody jeżdżą i mogą mieć doczepioną
naczepę. Najbardziej prawidłowe podejście pow-
inno wyglądać w następujący sposób:
- Definiujemy interfejs Samochód. Posiada on
metody które odpowiadają działaniom wszystkich
samochodów np.
- jedź
- załóż naczepę
- Tworzymy klasę abstrakcyjną, która imple-
mentuje interfejs Samochód w taki sposób, że met-
oda jedź jest wspólna dla wszystkich samochodów,
Klasa
Abstrakcyjny byt określający zbiór Obiektów
o takich samych właściwościach.
Klasa definiuje zestaw Metod i Pól dla swoich
Obiektów. Przykładem klasy może być samochód.
Może on podejmować różne działania np. jechać i
ma pewne właściwości np. kolor. Jest jednak ab-
strakcyjny, mówiąc inaczej "nienamacalny". Jeżeli
mówimy o klasie Samochód to oznacza, że
mówimy o jakimś samochodzie.
Ogólny wzór definicji klasy w Javie wygląda
w następujący sposób:
J J A A V V A A e e x x P P r r e e s s s s 4
Sierpień 2008
161636736.020.png 161636736.021.png 161636736.022.png
Zgłoś jeśli naruszono regulamin