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:
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
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
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
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
Plik z chomika:
jimasek
Inne pliki z tego folderu:
Java_exPress_002_2008_12.pdf
(8889 KB)
Java_exPress_003_2009_03.pdf
(10012 KB)
Java_exPress_001_2008_08.pdf
(3097 KB)
Java_exPress_007_2010_03.pdf
(12230 KB)
Java_exPress_004_2009_06.pdf
(8098 KB)
Inne foldery tego chomika:
Auto Świat
Chip
Elektronika dla Wszystkich
Elektronika Praktyczna
hakin9
Zgłoś jeśli
naruszono regulamin