Online kurz programování Java 1 (ZDARMA) – objekty, výpis na obrazovku

Chtě­li bys­te se nau­čit pro­gra­mo­vat tak, aby vám všech­no někdo vysvět­lil úpl­ně jed­no­du­še, jako kama­rád u piva? A chtě­li bys­te i „píse­ček“ na hra­ní, kde si může­te hned všech­no bez jaké­ho­ko­liv insta­lo­vá­ní vyzkou­šet? Tak to jste tu správ­ně. Javu se s námi může­te nau­čit bez jakých­ko­liv před­cho­zích zna­los­tí. Pojď­me hned na to!

Kamarádi na pivu
Konec nesro­zu­mi­tel­ných kur­zů od oti­tu­lo­va­ných ajťá­ků. My vám to vysvět­lí­me jako kama­rád u piva.

Obsah kurzu

Programovací jazyk Java

  • Java (výslov­nost [dža­va]) je pro­gra­mo­va­cí jazyk zalo­že­ný na objek­tech (co je to objekt, vysvět­lí­me dále). Pro začá­teč­ní­ky je slo­ži­těj­ší, po Java pro­gra­má­to­rech je pro­to vel­ká poptáv­ka a jsou vel­mi dob­ře placeni.
  • Java se typic­ky pou­ží­vá v bac­ken­du [beken­du] vel­kých spo­leč­nos­tí. (Bac­kend je část pro­gra­mu, ke kte­ré nepři­stu­pu­je uži­va­tel, např. zákaz­ník nebo pra­cov­ník ban­ky. Tyto pro­gra­my pra­cu­jí v poza­dí.) Pou­ží­vá se také ve stro­jo­vém uče­ní (machi­ne lear­ning, tedy sou­část tak­zva­né „umě­lé inte­li­gen­ce“), při tvor­bě apli­ka­cí pro Andro­id, webo­vých apli­ka­cí, clou­do­vých sys­té­mů, her a má mno­ho dal­ších uplatnění.
  • Javu pou­ží­va­jí např. fir­my Airbnb, Ama­zon, eBay, Goo­gle, Meta, Micro­soft, Net­flix, Spo­ti­fy, Uber, O2, Čes­ká Spo­ři­tel­na, Oracle, IBM, T‑Mobile, DHL a mno­ho dalších.
  • Nezá­vis­lost na plat­for­mě a uni­ver­zál­nost – kód lze spus­tit na PC, Linu­xu, macOS, v Andro­i­du atd. (všu­de, kde lze nain­sta­lo­vat JRE – Java Run­ti­me Envi­ron­ment [dža­va ran­tajm envaj­ron­ment], nebo­li pro­stře­dí, ve kte­rém může Java běžet). 
    • Slo­gan Javy: „Wri­te once, run any­whe­re.“ (Napiš jed­nou pro­gram, a ten pak už bude běžet všude.)
  • Žeb­říč­ky popu­la­ri­ty: TIOBE, coding Dojo, Stack Over­flow Trends.
    • Javu pou­ží­vá 10 000 000 programátorů
    • Java je v 56 000 000 000 zaří­ze­ních. Z toho­to počtu asi 60–65 % JVM (Java Vir­tu­al Machi­ne – pře­kla­dač a spouš­těč Javy) běží na clou­du, hod­ně z toho je v smart­pho­nech, autech, v IoT zaří­ze­ních (Inter­net of Things – zaří­ze­ní při­po­je­ná k inter­ne­tu).

Programování

  • Co je to vlast­ně to „pro­gra­mo­vá­ní“?
  • Při­rov­ná­ní s vaře­ním: autor napí­še recept, kuchař pod­le něj uva­ří jíd­lo a stráv­ník ho nako­nec sní. 
    • Podob­ně pro­gra­má­tor napí­še recept, co má dělat počí­tač. Počí­tač jako kuchař postu­pu­je krok za kro­kem pod­le recep­tu. A uži­va­tel pou­ži­je výsle­dek, tře­ba ve for­mě apli­ka­ce na smartphonu.
    • Recept na jíd­lo může znít tře­ba: roz­klep­ni 2 vej­ce, při­dej 200 gra­mů mou­ky, zamí­chej to do vody. Pro­gram zní tře­ba: vykres­li okno, vypiš do něj infor­ma­ce, nakres­li na něj tla­čít­ko s nápi­sem „OK“, zob­raz to celé uživateli.
Počítač čtoucí vaše výtvory meme
  • Při­rov­ná­ní se slu­hou: před­stav­te si, že král odjíž­dí na dovo­le­nou. Na papír napí­še slu­ho­vi, co má dělat. Slu­ha to vykoná. 
    • Král tře­ba napí­še: Pokud bude pršet, zavři okna. Kaž­dý den nakrm koč­ku. Ve čtvr­tek dej popel­ni­ce na uli­ci. Podob­ně pro­gra­má­tor je jako král a počí­tač je jako slu­ha. Pro­gram zní napří­klad: Pokud uži­va­tel klik­ne na tla­čít­ko „OK“, zavři okno. Kaž­dý den zob­raz uži­va­te­li noti­fi­ka­ci. Ve čtvr­tek pošli uži­va­te­li infor­mač­ní e‑mail. Počí­tač to jako slu­ha všech­no vykoná.

Objekty, výpis na obrazovku

Co kdy­bychom chtě­li dát počí­ta­či pří­kaz, aby něco napsal na obra­zov­ku? Dá se to udě­lat takhle:

System.out.println("Ahoj!");

Proč to ale nevy­pa­dá nějak jed­no­du­še, tře­ba takhle?

print("Ahoj!");

No, pro­to­že tohle není něja­ký jiný jed­no­duš­ší jazyk, ale Java! Člo­věk aspoň pocho­pí, proč ti Javis­ti sto­jí fir­my tolik peněz. Nor­mál­ní lidi rad­ši pro­gra­mu­jí v něčem leh­čím (cítí­te-li se dosta­teč­ně nenor­mál­ně, pokra­čuj­te ve čtení).

Java je objek­to­vě orien­to­va­ný progra­mo­va­cí jazyk (OOP). Jaké jsou výho­dy objek­to­vé­ho pro­gra­mo­vá­ní? Tak například:

  • fun­gu­je skvě­le u vel­kých projektů 
    • v kódu se dá hez­ky udě­lat pořá­dek a kód je srozumitelnější
    • snad­něj­ší řeše­ní vel­kých a slo­ži­tých pro­blé­mů (kte­ré se dají roz­lo­žit na men­ší a jed­no­duš­ší problémy)
  • snad­no se najde chyba
  • lep­ší bezpečnost

Co OOP zna­me­ná? Vrať­me se k pří­kla­du s vaře­ním. V jed­no­duš­ším pro­gra­mo­va­cím jazy­ku by recept podob­ný pro­gra­mu vypa­dal tře­ba takhle:

vejce;
mouka;
voda;
smichej(vejce,mouka,voda);

V Javě ale spíš takhle:

PlanMixeru.mixer.smichej(vejce,mouka,voda);

Java kom­bi­nu­je dva pří­stu­py. Jed­nak seznam pří­ka­zů, kte­ré se vyko­ná­va­jí tak, jak jdou za sebou (jako v recep­tu na peče­ní). Pro­gram ale sto­jí hlav­ně na objek­tech, bez kte­rých se v Javě neo­be­jde­me. Co to ty objek­ty jsou? Tak dávej­te pozor. Zade­fi­nu­je­me si pár věcí a pou­ži­je­me k tomu při­rov­ná­ní se strojem.

Class [klás] (tří­da) – plán stro­je. Dej­me tomu výkres, jak vyro­bit mixér. Název tří­dy se píše vždy s vel­kým pís­me­nem na začát­ku všech slov, kte­rá v názvu tří­dy jsou (pří­klad: PlanMixe­ru). Java roz­li­šu­je malá a vel­ká písmena!

Object [obdžekt] (objekt) – stroj. Napří­klad mixér. Mixér (objekt) je vyro­be­ný pod­le plá­nu (tří­dy). Jiný­mi slo­vy, objekt je instan­cí tří­dy. Pod­le jed­no­ho plá­nu lze vyro­bit něko­lik mixé­rů. Stej­ně tak může exis­to­vat něko­lik objek­tů, kte­ré jsou instan­cí třídy.

Method [meθd] (meto­da) – funk­ce stro­je. Tře­ba míchá­ní. Dej­me ale tomu, že stroj má víc růz­ných funk­cí. Tře­ba kuchyň­ský robot. V tom pří­pa­dě má víc metod, napří­klad míchá­ní, seká­ní, loupání…(Kdo by to náho­dou nevě­děl, „θ“ se vyslo­vu­je tak, že se str­čí jazyk mezi zuby a vyslo­ví se „t“. Pro­gra­mo­vat bez ang­lič­ti­ny by bylo jako dělat medi­cí­nu bez lati­ny, tak­že v tomhle kur­zu pochy­tí­te něco i z ní.)

Tak­že kód by mohl vypa­dat takhle:

PlanMixeru.mixer.smichej(vejce,mouka,voda);

Vlast­ně tím počí­ta­či říkáme:

  1. Vez­mi plán mixéru.
  2. Vyrob pod­le něho mixér.
  3. Zapni mixér, aby míchal.
  4. Do toho mixé­ru hoď vej­ce, mou­ku a vodu.

Vidí­me logic­ký postup oddě­le­ný teč­ka­mi: plán, stroj, funk­ce stro­je. Teč­ky taky oddě­lu­jí čle­ny hie­rar­chie, postu­pu­je se od nej­vyš­ší­ho k nej­niž­ší­mu. Dej­me tomu, že doma ote­vře­te obrov­skou kra­bi­ci, v ní je kra­bi­ce od bot, v ní je kra­bič­ka na šper­ky a v ní prstýnek. Potom by kód vypa­dal takhle:

ObrovskaKrabice.krabiceOdBot.krabickaNaSperky.prstynek

Tady je dal­ší příklad:

Hierarchie - Java

Vrať­me se teď k pří­kla­du s mixé­rem. K čemu jsou kula­té závorky?

PlanMixeru.mixer.smichej(vejce,mouka,voda);

Jsou v nich tak­zva­né argu­men­ty. Dá se říct, že to jsou vstu­py, to co str­čí­me do meto­dy smichej. V našem pří­kla­du jsme do meto­dy smichej dali vejce,mouka,voda. Všim­ně­te si taky střed­ní­ku ;, kte­rý počí­ta­či ozna­mu­je konec pří­ka­zu (pří­kaz – angl. com­mand [kménd] nebo sta­te­ment [stejt­ment], střed­ník – angl. semi­co­lon [semi­ko­lon]). Bez střed­ní­ku by počí­tač nepo­cho­pil, kde kon­čí jeden pří­kaz a začí­ná dal­ší. Když střed­ník zapo­me­ne­te napsat, tak vám při spuš­tě­ní pro­gra­mu počí­tač pořád­ně vyna­dá a neu­dě­lá vůbec nic.

Konec pří­kla­dů z kuchy­ně, pojď­me zpát­ky na oprav­do­vou Javu. Už je tenhle kód jasnější?

System.out.println("Ahoj!");
  • System – třída
  • out – objekt („out“ je zkrat­ka od „out­put“ [aut­put] nebo­li „výstup“)
  • println – meto­da (zkrat­ka z „print line“ nebo­li „vytisk­ni řádek“)
  • () – závor­ky, ve kte­rých je argument
  • "Ahoj" – argument
  • ; – konec příkazu

Tak si ho rov­nou vyzkou­ší­me. V okně níž vidí­te hoto­vý kód. Stisk­ně­te tla­čít­ko Execu­te a kód se spus­tí. Výsle­dek uvi­dí­te v čer­ném okén­ku dole. Porov­nej­te pří­ka­zy a výsle­dek po spuštění.

  • Jste na smart­pho­nu? Kód i výsle­dek v čer­ném okně může­te prs­tem posou­vat dole­va a dopra­va, abys­te vidě­li celé řádky.
  • Jste na iPho­ne, iPa­du? Jdě­te do Nastavení>Safari>Nesledovat napříč strán­ka­mi a vypně­te tuto funk­ci.
public class MyClass { public static void main (String args[]) { System.out.println("Ahoj!"); System.out.println(123); System.out.println("Hele mezera."); System.out.print("Tiskneme bez entru. "); System.out.print("Pokracujeme na stejnem radku."); System.out.println("Jeden radek.\nDruhy radek."); } }
  • Vidí­te tam pří­kaz println, kte­rý na kon­ci řád­ku při­dá enter („new line“ nebo­li nový řádek). Pří­kaz print dělá to samé, jen­že bez ent­ru na konci.
  • Vidí­me taky, že v řetěz­ci zna­ků klid­ně můžou být meze­ry. Kaž­dý řetě­zec ovšem musí být mezi dvo­ji­tý­mi uvo­zov­ka­mi ".
  • Čís­lo napí­še­me bez uvozovek.
  • Skok na dal­ší řádek může­me vytvo­řit i upro­střed řetěz­ce pomo­cí \n (zkrat­ka od „new line“). (Poznám­ka: \n fun­gu­je na Linu­xu. Kód v okén­ku běží na linu­xo­vém ser­ve­ru, pro­to nám \n fun­gu­je. Poz­dě­ji se nau­čí­me vari­an­ty pro dal­ší ope­rač­ní systémy.)

Mož­ná vás napad­ne: a co se sta­ne, když tam napíšu řetě­zec bez uvo­zo­vek? Ane­bo vás napad­ne něja­ká jiná otáz­ka. Kód v okně může­te libo­vol­ně pře­psat, expe­ri­men­to­vat, nebo napsat svůj vlast­ní, a tak se lépe nau­čí­te, co fun­gu­je a co nefunguje.

Asi si říká­te, no fajn, ale k čemu jsou dva řád­ky na začát­ku pro­gra­mu a dvě slo­že­né závor­ky } na kon­ci programu?

public class MyClass { 
  public static void main (String args[]) {   
    //na toto místo vždy vložte váš kód
  }
}

Udě­lá­me tako­vou doho­du. Zatím si jich nevší­mej­te a my vám poz­dě­ji vysvět­lí­me, co přes­ně zna­me­na­jí. Kaž­dý kód, kte­rý se nau­čí­te, pros­tě zatím vlož­te mezi ně.

Pokra­čuj­te dal­ším dílem: Onli­ne kurz pro­gra­mo­vá­ní Java 2 – pro­měn­né, dato­vé typy.

Obráz­ky: Unspla­sh: Dono­van Gra­bowski, Pexels, Pixa­bay, Bellalunatoys.com

NOVÉ ČLÁNKY E‑MAILEM?
Při­hlaš­te se k odběru 
Sdí­lej­te článek
Jeden komentář

Napsat komentář: Vita Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

8 + šestnáct =