Prvé programy v Jave

Z Kiwiki
Verzia z 18:50, 10. september 2010, ktorú vytvoril Juraj (diskusia | príspevky) (Vytvorená stránka „{{navigacne menu - java}} Skôr ako napíšeme prvý program v Jave, musíme mať nainštalované JDK (pozri Platforma Java - prehľad). Pre pohodlnú prácu so zdrojov…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Skočit na navigaci Skočit na vyhledávání

Skôr ako napíšeme prvý program v Jave, musíme mať nainštalované JDK (pozri Platforma Java - prehľad). Pre pohodlnú prácu so zdrojovým kódom je vhodné použiť niektorý z dostupných vývojových prostredí, podporujúcich prácu s jazykom Java. Medzi naujpoužívanejšie vývojové prostredia patria:

Nultý program v Jave

Zdrojový kód je obyčajný textový súbor, v ktorom je zapísaný program v jazyku Java. Je editovateľný textovým editorom napríklad SciTe, typicky je pomenovaný meno_triedy.java podľa triedy (class), ktorá sa v ňom nachádza. Pre editovanie používajte výhradne editory určené špeciálne na editovanie zdrojových kódov programov, textové editory pre tvorbu dokumentov do textu vkladajú dodatočne rôzne formátovacie znaky a výsledný text nie je preto možné skompilovať. Zdrojový kód je zrozumiteľný programátorovi - ten mu musí rozumieť, aby mohol do neho zapísať požadovaný algoritmus. Význam tried - slovíčko class, vysvetlíme neskôr, zatiaľ ich berme ako niečo "povinné".

Najjednoduchší zdrojový kód, v našom prípade je uložený v súbore nic.java:

class nic {
}

Vysvetlenie k tomuto zdrojovému kódu

  • "{" otvára obsah bloku, "}" zatvára, zatiaľ je blok a teda aj trieda prázdna
  • kompilovanie = preklad do bytecode (človeku nezrozumiteľný), vytvorenie súboru .class
    • z príkazového riadku javac nic.java vytvorí nic.class
    • ak ste zdrojový kód napísali v SciTe, použite menu Tools -> Compile alebo stlačením klávesy F7


Úloha

Vyskúšajte: Čo sa stane, ak súbor prva.java bude obsahovať viac tried?

class prva {
}
 
class druha {
}
 
class tretia {
}

Po spustení javac prva.java dostaneme tri súbory prva.class, druha.class, tretia.class, každý bude obsahovať jednu triedu. Tieto súbory by sme dostali aj keby sa súbor .java volal inak, nie prva.java, kompilátor sa riadi menom, ktoré napíšeme za class.

  • zásadou však bude v jednom súbore mať iba jednu triedu a pomenovať ho podľa nej
  • pozor, často sa stane, že omylom pomenujete súbor inak, ako triedu v ňom a trápite sa, prečo chybové hlásenia nedávajú zmysel... (súbor .class sa volá inak, ako súbor .java), veľmi častou chybou je zámena malých/veľkých písmen v menách, na ktoré je kompilátor citlivý

Prvý program v Jave

Náš prvý program bude jednoduchý program spustiteľný cez príkazový riadok. Program vypíše do konzoly hlášku "Ahoj JAVA" a skončí. Výsledný program nevytvorí žiadne okno.

 1 /*  Prvy program v jave.
 2     Subor: PrvyProgram.java
 3 */
 4 public class PrvyProgram{
 5 
 6    public static void main(String[] args)
 7    {
 8      System.out.println("Ahoj JAVA");
 9    } 
10   
11 }

Zaujímavosťou v Jave je to, že súbor so zdrojovým kódom musí mať rovnaký názov ako vytvorená trieda. V našom prípade sa musí súbor volať PrvyProgram.java.

Spustenie aplikácie v Java Virtual Machine

Po kompilácii zdrojového kódu do bytecode, ktorý sa uloží do súboru meno_triedy.class je tento možné spustiť, pokiaľ v ňom je časť popisujúca, čo sa má vykonať.

V našom prípade vytvorí kompilátor súbor PrvyProgram.class, ktorý je spustiteľný cez JVM. Ak by náš program obsahoval viacero tried (čo je pravidlom), tak kompilátor vytvorí toľko class súborov, koľko máme tried. Aby bol výsledok zostavovania programu len jeden spustiteľný súbor, tak sú všetky class súbory zabalené do jedného archívu s koncovkou .jar. Náš výsledný program bude mať názov PrvyProgram.jar

Vo vytvorenom balíku môže byť len jedna hlavná trieda, ktorej kód sa spustí ako prvý. Hlavná trieda je tá, ktorá obsahuje statickú metódu main().

Spustenie programu: Ako bolo spomenuté, kompilátor vytvorí z každej triedy jeden class súbor. Spustiť sa dá len tá trieda, ktorá obsahuje statickú metódu main(). Ak teda máme preložené class súbory, stačí nám v príkazovom riadku napísať:

C:\cesta\>java PrvyProgram

Výsledok bude nasledujúci

Ahoj JAVA

V prípade nášho prvého programu máme len jeden class súbor, ktorý bude obsiahnutý vo výslednom jar súbore. Ak by sme chceli spustiť náš program pomocou jar súboru, postupujeme nasledujúco:

C:\cesta\>java -jar PrvyProgram.jar

Výstup programu je totožný.

Aký je medzi týmto rozdiel? Pre distribúciu programov sa používa formát jar v ktorom sú zabalené všetky potrebné class súbory.

Analýza zdrojového kódu

Analyzujme zrojový kód programu PrvyProgram.


Komentár - Riadok 1 až 3:

Text medzi znakmi /* a */ je komentár. Nemá žiadny vplyv na beh programu, ale výrazne uľahčuje neskoršie porozumenie kódu programátorovi. Java definuje 3 typy komentárov:

  • riadkové: komentár začína znakmi // a končí na konci riadku
  • blokové. Komentár je všetko medzi /* a */
  • blokové pre dokumentáciu. Používajú sa na automatické generovanie dokumentácie zo zdrojového kódu. Na generovanie takejto dokumentácie sa používa nástroj javadoc. Komentár začína znakmi /** a končí */


Deklarovanie triedy - riadok 4.

Prvé slovo je public, za ním nasleduje class. Táto dvojica kľúčových slov definuje verejnú triedu. Teda takú triedu, ktorej metódy môžeme spustiť. Trieda je v Jave základnou jednotkou. Slovo PrvyProgram hovorí o názve triedy.


Definovanie triedy - od riadku 5.

Definícia triedy začína znakom { a končí znakom }. Medzi týmito zátvorkami sa môžu nachádzať deklarácie premenných a konštánt, definícia metód, riadiace príkazy a podobne. Dôležité je vedieť, že akékoľvek aktivity programu sa nachádzajú iba vo vnútri triedy.


Definovanie hlavnej metódy - riadok 6.

Hlavná metóda main musí byť definovaná ako:

  • public - verejná. Znamená to, že trieda je viditeľná aj mimo triedy. V prípade, ak by bola táto metóda súkromná (private), tak by sa nedala spustiť.
  • static - statická. Znamená to, že metódu môžeme zavolať aj bez toho aby sme vytvorili inštanciu triedy. Podrobnosti budú vysvetlené neskôr pri opise možností definície tried a metód.
  • void - bez návratovej hodnoty. Metóda po skončení nevráti žiaden informačný výstupný kód.

Metóda main má jeden parameter, ktorý sa musí volať args. Typ tohoto parametra je pole objektov typu String - Strings [] (teda reťazcov). .


Výpis textu - riadok 8.

Príkaz System.out.println spôsobý vypísanie textu na obrazovku vrátanie netlačiteľného znaku prechodu na nový riadok. Spomínaný zápis je vlastne volanie metódy prinln, ktorá patrí do triedy out a táto trieda je zasa členom (resp. vlastnoťou) triedy System.