PO Wstęp do Javy: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{{powrot|Programowanie obiektowe|}} | {{powrot|Programowanie obiektowe|}} | ||
== | == Wstêp do Javy == | ||
=== Wprowadzenie === | === Wprowadzenie === | ||
Od tego | Od tego wyk³adu zaczynamy poznawanie programowania obiektowe na przyk³adzie konkretnego jêzyka programowania. Bêdzie to Java. Java jest jednym ze wspó³czesnych, nowoczesnych jêzyków obiektowych. Jest te¿ bardzo popularna. Wszystkie te cechy uzasadniaj¹ wybór tego jêzyka jako narzêdzia do pokazania mechanizmów obiektowych. Nale¿y jednak podkreœliæ, ¿e nie jest to jedyna mo¿liwoœæ. Niniejszy wyk³ad z bardzo ma³ymi zmianami, mo¿na by by³o oprzeæ na C#. Mo¿na te¿ z bardzo dobrym skutkiem skonstruowaæ wyk³ad z programowania obiektowego zestawiaj¹c ze sob¹ czysto obiektowy Smalltalk z hybrydowym C++ (choæ wymaga to ju¿ pewnej dojrza³oœci programistycznej od s³uchaczy). Mo¿liwoœci jest wiele, twórcy ka¿dego wyk³adu musz¹ dokonaæ jakiegoœ wyboru. Wa¿ne jest to, by s³uchaczom wyk³adu nie umkn¹³ podstawowy fakt: wybrany jêzyk programowania jest tylko narzêdziem s³u¿¹cym do pokazania na przyk³adach na czym polega programowanie obiektowe i jego wybór, aczkolwiek niezbêdny, jest rzecz¹ wtórn¹. | ||
W trakcie | W trakcie wyk³adu omówimy wiele cech i konstrukcji Javy. Chcemy jednak mocno podkreœliæ, ¿e nie jest naszym celem stworzenie podrêcznika Javy. Na szczêœcie firmowa dokumentacja Javy jest bardzo obszerna i powszechnie, darmowo dostêpna. Dotyczy to tak definicji jêzyka jak i opisu standardowych bibliotek. Nie czujemy siê wiêc zobowi¹zani do omawiania tych cech Javy, które z punktu widzenia tego wyk³adu maj¹ ma³e znaczenie (na przyk³ad zupe³nie pomijamy kwestie zwi¹zane ze wspó³bie¿noœci¹). Java mimo m³odego wieku przesz³a ju¿ wiele zmian, my bêdziemy bazowaæ na jej dystrybucji J2SE 1.6 i opisie jêzyka podanym w trzecim wydaniu jego specyfikacji (z roku 2005). | ||
Standardowe biblioteki Javy | Standardowe biblioteki Javy s¹ bardzo rozbudowane - instaluj¹c podstawow¹ dystrybucjê Javy (J2SE) dostajemy do dyspozycji prawie cztery tysi¹ce klas zgrupowanych w oko³o dwustu pakietów. Oczywiœcie nie bêdziemy próbowali ich wszystkich omawiaæ w ramach naszego wyk³adu, natomiast bêdziemy czerpaæ z nich przyk³ady budowy rozbudowanych i z³o¿onych hierarchii klas (zajmiemy siê strumieniami, kolekcjami i klasami do tworzeniem graficznych interfejsów u¿ytkownika). | ||
Po tych | Po tych wyjaœnieniach pora zaczynaæ! | ||
=== Zaczynamy === | === Zaczynamy === | ||
Java jest wysokopoziomowym, kompilowanym, obiektowym | Java jest wysokopoziomowym, kompilowanym, obiektowym jêzykiem programowania z siln¹ kontrol¹ typów. Sk³adnia Javy jest wzorowana na C/C++. Jednym z za³o¿eñ projektowych Javy by³o stworzenie jêzyka wzorowanego na C++ ale bezpieczniejszego, dlatego w Javie nie ma na przyk³ad wskaŸników. Inne za³o¿enie projektowe dotyczy³o przenoœnoœci programów w Javie. Poniewa¿ Java m.in. zosta³a zaprojektowana z myœl¹ o uruchamianie programów pobieranych przez sieæ, jêzyk musia³ byæ tak zaprojektowany i wyspecyfikowany, by efekt dzia³ania programu nie zale¿a³ od tego, jakiej implementacji jêzyka u¿yto (oczywiœcie przy za³o¿eniu jej zgodnoœci ze specyfikacj¹ jêzyka). Ciekaw¹ cech¹ Javy jest to, ¿e kompilator Javy nie generuje kodu maszynowego, lecz kod poœredni (tak zwany bajtkod), który jest wykonywany przez wirtualn¹ maszynê Javy. Takich wirtualnych maszyn Javy stworzono wiele dla ró¿nych systemów operacyjnych i komputerów. Dziêki temu rozwi¹zaniu i wspomnianej wczeœniej œcis³ej specyfikacji jêzyka, mo¿na napisaæ program w Javie na przyk³ad na komputerze domowym, skompilowaæ go, przes³aæ skompilowan¹ jego postaæ na drugi koniec œwiata na du¿y komputer w centrum obliczeniowym i tam go wykonaæ. Efekt dzia³ania bêdzie taki sam.<ref>Zdarzaj¹ siê wprawdzie tak¿e w Javie problemy z przenoszeniem oprogramowania, ale s¹ one zwykle spowodowane nie niezgodnoœci¹ samych maszyn wirtualnych, lecz specyficznymi cechami œrodowisk, w jakich te programy siê uruchamia. Ale nale¿y mocno podkreœliæ, o ile w przypadku wiêkszoœci jêzyków programowania norm¹ jest to, ¿e uruchomienie programu na maszynie o innej architekturze wymaga co najmniej ponownego skompilowania programu, o tyle w przypadku Javy regu³¹ jest to, ¿e program dzia³a na ka¿dym komputerze tak samo, bez ¿adnych dodatkowych zabiegów.</ref> | ||
Od wydania znakomitej | Od wydania znakomitej ksi¹¿ki o C przez Kernighana i Ritchiego sta³o siê zwyczajem, by pierwszy prezentowany w danym jêzyku program wypisywa³ pozdrowienie dla œwiata, nie wypada nam wiêc post¹piæ inaczej: | ||
public class HelloWorld { | public class HelloWorld { | ||
Linia 25: | Linia 25: | ||
} | } | ||
Programy w Javie | Programy w Javie sk³adaj¹ siê z ''klas''. Na razie przyjmijmy - w wielkim uproszczeniu - ¿e klasa jest takim lepszym typem rekordowym z Pascala (czy typem struktur z C), zawieraj¹cym oprócz zwyk³ych pól tak¿e funkcje. W jêzykach obiektowych funkcje zdefiniowane w klasach nazywamy ''metodami''. | ||
Przedstawiony program | Przedstawiony program sk³ada siê z jednej klasy o nazwie ''HelloWorld''. Definicja klasy rozpoczyna siê od s³owa '''class''' poprzedzonego byæ mo¿e dodatkowymi specyfikacjami dostêpu (tu mamy jedn¹ '''public''', informuj¹c¹ kompilator, ¿e nasza klasa jest dostêpna tak¿e poza swoim pakietem, o pakietach powiemy dalej).<ref>W tym przyk³adzie s³owo ''public'' przed deklaracj¹ klasy mo¿na pomin¹æ.</ref> Przedstawiona klasa zawiera tylko jedn¹ sk³adow¹, jest ni¹ metoda o nazwie ''main''. Ta nazwa metody nie jest przypadkowa. Wykonanie ca³ego programu w Javie polega na wykonaniu metody main z g³ównej klasy programu (w naszym programie jest tylko jedna klasa, wiêc wybór klasy g³ównej nie nastrêcza tu problemów). | ||
Metoda main musi | Metoda main musi byæ przygotowana na przyjêcie jako argumentu tablicy napisów zawieraj¹cej argumenty podane w wierszu polecenia przy wywo³aniu programu (nawet jeœli, tak jak przyk³adowa metoda, ignoruje te argumenty). Deklaracja parametrów metody wygl¹da bardzo podobnie jak w wiêkszoœci jêzyków programowania. Podaje siê sekwencjê deklaracji poszczególnych parametrów (u nas ta sekwencja ma d³ugoœæ 1), a poszczególne deklaracje oddziela siê jakimœ separatorem (w Javie jest to akurat przecinek). Ka¿da deklaracja okreœla nazwê i typ parametru (czasem te¿ jakieœ dodatkowe cechy parametru, jak na przyk³ad sposób przekazywania - tak jest w Pascalu czy C# - ale w Javie nie ma takich dodatkowych informacji). W naszym przyk³adzie parametr nazywa siê ''args'' a typem jego wartoœci jest ''String[]'', czyli tablica napisów, przy czym d³ugoœæ tablicy mo¿e byæ dowolna. Zwróæmy uwagê, ¿e w Javie (tak jak w C i innych jêzykach wywodz¹cych siê z C) najpierw podaje siê typ, a potem nazwê parametru (choæ to parametr, a nie typ, jest w tym miejscu definiowany). | ||
Poniewa¿ w Javie wszystkie metody s¹ funkcjami (a nie procedurami), nale¿y jeszcze okreœliæ typ wyniku metody ''main''. Tak pechowo siê sk³ada, ¿e akurat ta metoda jest kiepskim kandydatem na funkcjê, bo nie daje ¿adnego wyniku (w przeciwieñstwie do funkcji main z C/C++). Tradycyjny trik stosowany w jêzykach wywodz¹cych siê od C polega na definiowaniu takich funkcji jako funkcji o pustym zbiorze wyników. Typ reprezentuj¹cy pusty zbiór wartoœci nazywa siê ''void''. Typ wyniku metody podaje siê w Javie (i wielu innych jêzykach programowania) przed nazw¹ metody (niezgodnie niestety z tradycj¹ matematyczn¹). | |||
Przed typem metody podane | Przed typem metody podane s¹ dodatkowe specyfikatory. S³owo '''public''' oznacza, ¿e metoda jest widoczna poza klas¹. S³owo '''static''' oznacza, ¿e jest to metoda klasowa, czyli taka, do wywo³ania której nie jest potrzebny egzemplarz obiektu tej klasy. Tak jak wspominaliœmy wczeœniej klasa odpowiada typowi, zaœ wartoœci typu klasowego, egzemplarze tego typu, to ''obiekty''. Zwykle wywo³ujemy metody obiektów, ale mo¿na te¿ wywo³ywaæ metody klas. Jest to szczególnie istotne w naszym programie, gdzie nie utworzyliœmy ¿adnego obiektu. | ||
Treœæ metody ''main'' sk³ada siê z jednego wywo³ania metody o nazwie ''println'', wypisuj¹cej na konsoli tekstowej (czyli na standardowym wyjœciu programów dzia³aj¹cych w trybie tekstowym), tekst zadany jako parametr. Wywo³uj¹c metodê w Javie musimy podaæ obiekt, na rzecz którego tê metodê wywo³ujemy. W tym przypadku jest to obiekt ''out'' reprezentuj¹cy standardowy strumieñ wyjœciowy (jest to obiekt klasy PrintStream). Obiekt ten jest atrybutem (polem w terminologii rekordów z Pascala) klasy System. W tej klasie zebrano podstawowe operacje i obiekty zwi¹zany ze standardowym wejœciem i wyjœciem oraz z systemem operacyjnym, pod kontrol¹ którego dzia³a program. Zwróæmy uwagê, ¿e obiekt ''out'' jest atrybutem klasowym, to znaczy dostêpnym bezpoœrednio w klasie System, a nie jej egzemplarzach (których zreszt¹ dla tej akurat klasy nie daje siê tworzyæ). W celu odwo³ywania siê do metody lub atrybutu klasy w Javie stosuje siê (typow¹ dla wiêkszoœci jêzyków obiektowych) notacjê kropkow¹: | |||
obiekt. | obiekt.sk³adowa | ||
gdzie | gdzie sk³adowa mo¿e byæ metod¹ (i wtedy podajemy jeszcze jej parametry otoczone nawiasami okr¹g³ymi) lub atrybutem. Oczywiœcie mo¿emy siê dalej odwo³ywaæ do sk³adowych atrybutu lub wyniku metody. | ||
=== Komentarze === | === Komentarze === | ||
Komentarze jednowierszowe | Komentarze jednowierszowe zaczynaj¹ siê od dwu ukoœników i rozci¹gaj¹ a¿ | ||
do | do koñca wiersza. | ||
// To jest komentarz jednowierszowy | // To jest komentarz jednowierszowy | ||
Komentarze wielowierszowe | Komentarze wielowierszowe s¹ ograniczone przez /* na pocz¹tku i */ na koñcu (oczywiœcie komentarz wielowierszowy mo¿e mieœciæ siê ca³kowicie w jednym wierszu, mo¿e te¿ nawet byæ kilka takich komentarzy w jednym wierszu). | ||
/* To jest | /* To jest | ||
Linia 55: | Linia 55: | ||
/* A */ /* to */ /* kilka */ /* takich */ /* komentarzy */ | /* A */ /* to */ /* kilka */ /* takich */ /* komentarzy */ | ||
Komentarzy wielowierszowych nie | Komentarzy wielowierszowych nie mo¿na zagnie¿d¿aæ jednych w drugich. | ||
/* To jest komentarz /* to nadal jest komentarz */ | /* To jest komentarz /* to nadal jest komentarz */ a_to_ju¿_nie | ||
=== Elementy leksykalne Javy === | === Elementy leksykalne Javy === | ||
Nie | Nie bêdziemy tu zbytnio wchodziæ w szczegó³y, odsy³aj¹c bardziej zainteresowanych czytelników do raportu jêzyka. Pozwolimy sobie jedynie podsumowaæ najwa¿niejsze elementy leksykalne. | ||
==== Identyfikatory ==== | ==== Identyfikatory ==== | ||
* Identyfikatory | * Identyfikatory sk³adaj¹ siê z liter i cyfr, znak "_" jest traktowany jako litera<ref>Tak¿e znak "$", ale nie powinno siê go u¿ywaæ w zwyk³ych programach.</ref>, | ||
* | * Poniewa¿ Java u¿ywa u¿ywa kodowania znaków UniCode, to identyfikatory mog¹ zawieraæ znaki narodowe (w tym polskie), | ||
* Nie ma ograniczenia na | * Nie ma ograniczenia na d³ugoœæ identyfikatorów, | ||
* Identyfikatory nie | * Identyfikatory nie mog¹ byæ s³owami kluczowymi Javy ani litera³ami ''true'', ''false'' i ''null''. | ||
==== | ==== S³owa kluczowe ==== | ||
Oto lista | Oto lista s³ów kluczowych Javy | ||
{| border="0" cellpadding="5" cellspacing="0" align="center" | <!--{| border="0" cellpadding="5" cellspacing="0" align="center" | ||
|+''' | |+'''S³owa kluczowe''' | ||
--> | |||
{| border="1" cellpadding="2" | |||
|- | |- | ||
abstract || continue || for || new || switch | abstract || continue || for || new || switch |
Wersja z 21:43, 2 paź 2006
Wstêp do Javy
Wprowadzenie
Od tego wyk³adu zaczynamy poznawanie programowania obiektowe na przyk³adzie konkretnego jêzyka programowania. Bêdzie to Java. Java jest jednym ze wspó³czesnych, nowoczesnych jêzyków obiektowych. Jest te¿ bardzo popularna. Wszystkie te cechy uzasadniaj¹ wybór tego jêzyka jako narzêdzia do pokazania mechanizmów obiektowych. Nale¿y jednak podkreœliæ, ¿e nie jest to jedyna mo¿liwoœæ. Niniejszy wyk³ad z bardzo ma³ymi zmianami, mo¿na by by³o oprzeæ na C#. Mo¿na te¿ z bardzo dobrym skutkiem skonstruowaæ wyk³ad z programowania obiektowego zestawiaj¹c ze sob¹ czysto obiektowy Smalltalk z hybrydowym C++ (choæ wymaga to ju¿ pewnej dojrza³oœci programistycznej od s³uchaczy). Mo¿liwoœci jest wiele, twórcy ka¿dego wyk³adu musz¹ dokonaæ jakiegoœ wyboru. Wa¿ne jest to, by s³uchaczom wyk³adu nie umkn¹³ podstawowy fakt: wybrany jêzyk programowania jest tylko narzêdziem s³u¿¹cym do pokazania na przyk³adach na czym polega programowanie obiektowe i jego wybór, aczkolwiek niezbêdny, jest rzecz¹ wtórn¹.
W trakcie wyk³adu omówimy wiele cech i konstrukcji Javy. Chcemy jednak mocno podkreœliæ, ¿e nie jest naszym celem stworzenie podrêcznika Javy. Na szczêœcie firmowa dokumentacja Javy jest bardzo obszerna i powszechnie, darmowo dostêpna. Dotyczy to tak definicji jêzyka jak i opisu standardowych bibliotek. Nie czujemy siê wiêc zobowi¹zani do omawiania tych cech Javy, które z punktu widzenia tego wyk³adu maj¹ ma³e znaczenie (na przyk³ad zupe³nie pomijamy kwestie zwi¹zane ze wspó³bie¿noœci¹). Java mimo m³odego wieku przesz³a ju¿ wiele zmian, my bêdziemy bazowaæ na jej dystrybucji J2SE 1.6 i opisie jêzyka podanym w trzecim wydaniu jego specyfikacji (z roku 2005).
Standardowe biblioteki Javy s¹ bardzo rozbudowane - instaluj¹c podstawow¹ dystrybucjê Javy (J2SE) dostajemy do dyspozycji prawie cztery tysi¹ce klas zgrupowanych w oko³o dwustu pakietów. Oczywiœcie nie bêdziemy próbowali ich wszystkich omawiaæ w ramach naszego wyk³adu, natomiast bêdziemy czerpaæ z nich przyk³ady budowy rozbudowanych i z³o¿onych hierarchii klas (zajmiemy siê strumieniami, kolekcjami i klasami do tworzeniem graficznych interfejsów u¿ytkownika).
Po tych wyjaœnieniach pora zaczynaæ!
Zaczynamy
Java jest wysokopoziomowym, kompilowanym, obiektowym jêzykiem programowania z siln¹ kontrol¹ typów. Sk³adnia Javy jest wzorowana na C/C++. Jednym z za³o¿eñ projektowych Javy by³o stworzenie jêzyka wzorowanego na C++ ale bezpieczniejszego, dlatego w Javie nie ma na przyk³ad wskaŸników. Inne za³o¿enie projektowe dotyczy³o przenoœnoœci programów w Javie. Poniewa¿ Java m.in. zosta³a zaprojektowana z myœl¹ o uruchamianie programów pobieranych przez sieæ, jêzyk musia³ byæ tak zaprojektowany i wyspecyfikowany, by efekt dzia³ania programu nie zale¿a³ od tego, jakiej implementacji jêzyka u¿yto (oczywiœcie przy za³o¿eniu jej zgodnoœci ze specyfikacj¹ jêzyka). Ciekaw¹ cech¹ Javy jest to, ¿e kompilator Javy nie generuje kodu maszynowego, lecz kod poœredni (tak zwany bajtkod), który jest wykonywany przez wirtualn¹ maszynê Javy. Takich wirtualnych maszyn Javy stworzono wiele dla ró¿nych systemów operacyjnych i komputerów. Dziêki temu rozwi¹zaniu i wspomnianej wczeœniej œcis³ej specyfikacji jêzyka, mo¿na napisaæ program w Javie na przyk³ad na komputerze domowym, skompilowaæ go, przes³aæ skompilowan¹ jego postaæ na drugi koniec œwiata na du¿y komputer w centrum obliczeniowym i tam go wykonaæ. Efekt dzia³ania bêdzie taki sam.<ref>Zdarzaj¹ siê wprawdzie tak¿e w Javie problemy z przenoszeniem oprogramowania, ale s¹ one zwykle spowodowane nie niezgodnoœci¹ samych maszyn wirtualnych, lecz specyficznymi cechami œrodowisk, w jakich te programy siê uruchamia. Ale nale¿y mocno podkreœliæ, o ile w przypadku wiêkszoœci jêzyków programowania norm¹ jest to, ¿e uruchomienie programu na maszynie o innej architekturze wymaga co najmniej ponownego skompilowania programu, o tyle w przypadku Javy regu³¹ jest to, ¿e program dzia³a na ka¿dym komputerze tak samo, bez ¿adnych dodatkowych zabiegów.</ref>
Od wydania znakomitej ksi¹¿ki o C przez Kernighana i Ritchiego sta³o siê zwyczajem, by pierwszy prezentowany w danym jêzyku program wypisywa³ pozdrowienie dla œwiata, nie wypada nam wiêc post¹piæ inaczej:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
Programy w Javie sk³adaj¹ siê z klas. Na razie przyjmijmy - w wielkim uproszczeniu - ¿e klasa jest takim lepszym typem rekordowym z Pascala (czy typem struktur z C), zawieraj¹cym oprócz zwyk³ych pól tak¿e funkcje. W jêzykach obiektowych funkcje zdefiniowane w klasach nazywamy metodami.
Przedstawiony program sk³ada siê z jednej klasy o nazwie HelloWorld. Definicja klasy rozpoczyna siê od s³owa class poprzedzonego byæ mo¿e dodatkowymi specyfikacjami dostêpu (tu mamy jedn¹ public, informuj¹c¹ kompilator, ¿e nasza klasa jest dostêpna tak¿e poza swoim pakietem, o pakietach powiemy dalej).<ref>W tym przyk³adzie s³owo public przed deklaracj¹ klasy mo¿na pomin¹æ.</ref> Przedstawiona klasa zawiera tylko jedn¹ sk³adow¹, jest ni¹ metoda o nazwie main. Ta nazwa metody nie jest przypadkowa. Wykonanie ca³ego programu w Javie polega na wykonaniu metody main z g³ównej klasy programu (w naszym programie jest tylko jedna klasa, wiêc wybór klasy g³ównej nie nastrêcza tu problemów).
Metoda main musi byæ przygotowana na przyjêcie jako argumentu tablicy napisów zawieraj¹cej argumenty podane w wierszu polecenia przy wywo³aniu programu (nawet jeœli, tak jak przyk³adowa metoda, ignoruje te argumenty). Deklaracja parametrów metody wygl¹da bardzo podobnie jak w wiêkszoœci jêzyków programowania. Podaje siê sekwencjê deklaracji poszczególnych parametrów (u nas ta sekwencja ma d³ugoœæ 1), a poszczególne deklaracje oddziela siê jakimœ separatorem (w Javie jest to akurat przecinek). Ka¿da deklaracja okreœla nazwê i typ parametru (czasem te¿ jakieœ dodatkowe cechy parametru, jak na przyk³ad sposób przekazywania - tak jest w Pascalu czy C# - ale w Javie nie ma takich dodatkowych informacji). W naszym przyk³adzie parametr nazywa siê args a typem jego wartoœci jest String[], czyli tablica napisów, przy czym d³ugoœæ tablicy mo¿e byæ dowolna. Zwróæmy uwagê, ¿e w Javie (tak jak w C i innych jêzykach wywodz¹cych siê z C) najpierw podaje siê typ, a potem nazwê parametru (choæ to parametr, a nie typ, jest w tym miejscu definiowany).
Poniewa¿ w Javie wszystkie metody s¹ funkcjami (a nie procedurami), nale¿y jeszcze okreœliæ typ wyniku metody main. Tak pechowo siê sk³ada, ¿e akurat ta metoda jest kiepskim kandydatem na funkcjê, bo nie daje ¿adnego wyniku (w przeciwieñstwie do funkcji main z C/C++). Tradycyjny trik stosowany w jêzykach wywodz¹cych siê od C polega na definiowaniu takich funkcji jako funkcji o pustym zbiorze wyników. Typ reprezentuj¹cy pusty zbiór wartoœci nazywa siê void. Typ wyniku metody podaje siê w Javie (i wielu innych jêzykach programowania) przed nazw¹ metody (niezgodnie niestety z tradycj¹ matematyczn¹).
Przed typem metody podane s¹ dodatkowe specyfikatory. S³owo public oznacza, ¿e metoda jest widoczna poza klas¹. S³owo static oznacza, ¿e jest to metoda klasowa, czyli taka, do wywo³ania której nie jest potrzebny egzemplarz obiektu tej klasy. Tak jak wspominaliœmy wczeœniej klasa odpowiada typowi, zaœ wartoœci typu klasowego, egzemplarze tego typu, to obiekty. Zwykle wywo³ujemy metody obiektów, ale mo¿na te¿ wywo³ywaæ metody klas. Jest to szczególnie istotne w naszym programie, gdzie nie utworzyliœmy ¿adnego obiektu.
Treœæ metody main sk³ada siê z jednego wywo³ania metody o nazwie println, wypisuj¹cej na konsoli tekstowej (czyli na standardowym wyjœciu programów dzia³aj¹cych w trybie tekstowym), tekst zadany jako parametr. Wywo³uj¹c metodê w Javie musimy podaæ obiekt, na rzecz którego tê metodê wywo³ujemy. W tym przypadku jest to obiekt out reprezentuj¹cy standardowy strumieñ wyjœciowy (jest to obiekt klasy PrintStream). Obiekt ten jest atrybutem (polem w terminologii rekordów z Pascala) klasy System. W tej klasie zebrano podstawowe operacje i obiekty zwi¹zany ze standardowym wejœciem i wyjœciem oraz z systemem operacyjnym, pod kontrol¹ którego dzia³a program. Zwróæmy uwagê, ¿e obiekt out jest atrybutem klasowym, to znaczy dostêpnym bezpoœrednio w klasie System, a nie jej egzemplarzach (których zreszt¹ dla tej akurat klasy nie daje siê tworzyæ). W celu odwo³ywania siê do metody lub atrybutu klasy w Javie stosuje siê (typow¹ dla wiêkszoœci jêzyków obiektowych) notacjê kropkow¹:
obiekt.sk³adowa
gdzie sk³adowa mo¿e byæ metod¹ (i wtedy podajemy jeszcze jej parametry otoczone nawiasami okr¹g³ymi) lub atrybutem. Oczywiœcie mo¿emy siê dalej odwo³ywaæ do sk³adowych atrybutu lub wyniku metody.
Komentarze
Komentarze jednowierszowe zaczynaj¹ siê od dwu ukoœników i rozci¹gaj¹ a¿ do koñca wiersza.
// To jest komentarz jednowierszowy
Komentarze wielowierszowe s¹ ograniczone przez /* na pocz¹tku i */ na koñcu (oczywiœcie komentarz wielowierszowy mo¿e mieœciæ siê ca³kowicie w jednym wierszu, mo¿e te¿ nawet byæ kilka takich komentarzy w jednym wierszu).
/* To jest komentarz wielowierszowy */ /* A */ /* to */ /* kilka */ /* takich */ /* komentarzy */
Komentarzy wielowierszowych nie mo¿na zagnie¿d¿aæ jednych w drugich.
/* To jest komentarz /* to nadal jest komentarz */ a_to_ju¿_nie
Elementy leksykalne Javy
Nie bêdziemy tu zbytnio wchodziæ w szczegó³y, odsy³aj¹c bardziej zainteresowanych czytelników do raportu jêzyka. Pozwolimy sobie jedynie podsumowaæ najwa¿niejsze elementy leksykalne.
Identyfikatory
- Identyfikatory sk³adaj¹ siê z liter i cyfr, znak "_" jest traktowany jako litera<ref>Tak¿e znak "$", ale nie powinno siê go u¿ywaæ w zwyk³ych programach.</ref>,
- Poniewa¿ Java u¿ywa u¿ywa kodowania znaków UniCode, to identyfikatory mog¹ zawieraæ znaki narodowe (w tym polskie),
- Nie ma ograniczenia na d³ugoœæ identyfikatorów,
- Identyfikatory nie mog¹ byæ s³owami kluczowymi Javy ani litera³ami true, false i null.
S³owa kluczowe
Oto lista s³ów kluczowych Javy
Przypisy
<references/>