Úvod do programovania v jazyku Java
Základy informatiky - jazyk Java
Úvod do programovania v jazyku Java
- >Syntax jazyka Java
- >Syntax jazyka Java - dátové typy, operátory
- >Syntax jazyka Java - riadiace príkazy
- >Syntax jazyka Java - základné triedy
- >Java - polia
- >Java - vstup a výstup údajov
Java - objektovo orientovaný prístup
Vzorové príklady:
Java - implementácia numerických algoritmov
Java - triedy geometrických tvarov
Pokročilé témy:
V súčasnosti existuje veľké množstvo programov, ktoré riešia veľmi rozmanité úlohy, pomaly sa môže zdať, že na všetko už bol naprogramovaný nejaký program. Napriek tomu často je potrebné, aby sme vytvorili vlastný program: autor môže totiž naprogramovať zoptimalizovaný algoritmus (taký postup na riešenie konkrétnej úlohy, aby bol vykonaný čo najrýchlejšie, s najmenšími výpočtovými nárokmi), čo je niekedy - hlavne pri náročných vedeckých výpočtoch - veľmi dôležité. Samozrejme nie je vhodné programovať všetko úplne nanovo, je výhodné, pokiaľ môžeme čo najviac využiť, čo už iní naprogramovali (inak by pokrok v programovaní bol nulový). Podobne, ako pri skladaní stavebnice niekedy potrebujeme väčšie, inokedy zase menšie diely, aj riešenie našej úlohy rozdelíme na časti, ktoré je možné realizovať postupne (niektoré časti postupov prevezmeme od iných programátorov, niektoré vytvoríme sami, dôležité je však, že sme schopní program korektne zostaviť ideálne s čo najmenšou námahou). Pri programovaní vždy volíme kompromis medzi možnosťou prebrať už naprogramované (s tou nevýhodou, že možno berieme aj časti, ktoré potrebovať nebudeme) a pracným programovaním vlastného algoritmu.
Programovací jazyk Java
Na našich prednáškach a cvičeniach sa budeme venovať programovaniu v programovacom jazyku Java, ktorý vyvíja spoločnosť SUN Microsystems Inc pod licenciou GNU/GPL - Free and Open Source Java. Jeho hlavnými výhodami sú:
- sú podporované takmer všetky operačné systémy
- je voľne šíriteľný - zadarmo
- je objektovo orientovaný (vysvetlíme neskôr), čo umožňuje veľkú znovupoužiteľnosť už naprogramovaných algoritmov
- existuje preň veľké množstvo príkladov, knižníc a má rozsiahlu podporu
- je veľmi dobre dokumentovaný
Pre nás bude dôležité, že sa v tomto programovacom jazyku naučíme ako základné princípy programovania tak aj rýchlo a relatívne jednoducho naprogramovať veľmi pekné a užitočné veci.
Na druhej strane, vždy je to niečo za niečo, a ako sme už spomenuli, za jednoduchosť sa platí daň. V prípade Javy to, že je podporovaná takmer všetkými operačnými systémami (jej prenositeľnosť) je možná vďaka tomu, že v operačnom systéme spustíme tzv. virtuálny stroj Javy, ktorý prekladá náš program operačnému systému. Programátori spoločnosti Sun nám tým, že naprogramovali virtuálny stroj Javy pre každú platformu umožnili programovať jednotne pod ľubovoľným operačným systémom. Áno, znamená to určitú stratu efektivity, pretože Java musí byť interpretovaná z bytecode. Existujú však spôsoby, ako tieto straty zredukovať na minimum, takže nevýhody sú bohato vyvážené možnosťami, ktoré jazyk ponúka.
Postup, ako sa dostať až k vykonateľnému programu v Jave a vykonať ho:
- písanie programu (zdrojového kódu) v jazyku Java (súbory *.java)
- preloženie resp. kompilovanie - vytvorenie binárneho (*.class) súboru kompilátorom javy javac
- spustenie virtuálneho stroja javy (sada počítačových programov spoločne integrovaných do programu java) a vykonanie spustiteľného .class súboru
Slovník používaných pojmov
- Case-sensitive
- Skutočnosť, že sa rozlišujú veľké a malé písmená. Java je case-sensitive.
- Skorá väzba (early binding)
- O tom, ktorá metóda ktorej triedy bude volaná sa rozhoduje už v priebehu kompilácie.
- Členské premenné (member variables)
- Dátová časť triedy.
- Dedičnosť (Inheritance)
- Novú triedu možno vytvoriť tak, že ju odvodíme od už existujúcej. Táto nová trieda zdedí ako členské premenné tak aj metódy rodičovskej triedy. Dedičnosť je prenosná. Teda ak trieda A je odvodená od triedy B a trieda B od triedy C, potom objekt triedy A je aj objektom triedy B i triedy C.
- Inštancia
- Môžeme povedať, že nejaký objekt je inštanciou nejakej triedy - teda onen objekt je akoby premennou danej triedy
- Metódy (methods)
- Funkčná časť triedy, resp. funkcia patriaca danej triede.
- Objekt (object)
- Konkrétne zástupca triedy. Niečo ako premenná dátového typu. Má vyhradený pamäťový priestor, možno s ním manipulovať prostredníctvom ovládačov.
- Odvodzovanie
- Skutočnosť, kedy novú triedu vytvoríme rozšírením / upravením nejaké iné.
- Ovládač alebo referencie, referenčná premenná (handler, referencie)
- Identifikátor, pomocou ktorého môžeme manipulovať s objektmi. Neobsahuje adresu objektu v pamäti, preto nemožno použiť adresové aritmetiky.
- Polymorfizmus (polymorphism)
- Vlastnosť OOP založená na neskoré väzbe
- Neskorá väzba (late binding)
- O tom, ktorá metóda ktoré triedy bude volaná sa rozhoduje až za behu aplikácie. Implicitný spôsob pre Javu.
- Prístupové práva
- Jednotlivým triedam, členským premenným a metódam môžeme nastaviť prístupové práva, čím môžeme určiť, z akých častí programu je možné použiť.
- Rozhranie triedy
- Zoznam použiteľných metód. Inak povedané informácie o tom, aké správy trieda prijíma.
- Skladanie alebo kompozície (Composition)
- Skutočnosť, keď sa objekt vytvára skladaním z ďalších objektov.
- Trieda (class)
- Štruktúra, ktorá zahŕňa dáta aj programový kód. Vzdialene podobné typom record / struct v procedurálnych jazykoch.
- Zapuzdrenie (Encapsulation)
- Skutočnosť, že objekty obsahujú pohromade dáta aj funkcie s nimi pracujúce a ďalej že môžeme obmedziť prístup k nim.
- Správy
- Objekty spolu komunikujú zasielaním správ - podobné ako volanie metód.