Programatorska terminologia:

 

UJJ1: [Ucebnica Jazyka Java (P.Herout)] + Jbuilder 3 (M.Virius)

 

 

Obsah:

 

  1. Uvod

  2. Historia

  3. Zposob spracovania programu v Jave

  4. Komentare v Jave

  5. Datove typy

  6. „Escape“ sekvencie

  7. Operatory

  8. Bitove operacie

  9. Riadiace struktury

10. Triedy

11. Metody

12. Premenne

13. Polia

14. Triedy a objekty

15. Rozhranie

16. Vnorene triedey

17. Retazce

18. Baliky

19. Vynimky

20. Adresare a subory

21. Citanie zo vstupov a zapis na vystupy

22. Systemove akcie

23. Vlakna

24. Pouzivane pojmy

25. Teoreticke poznamky

 

 

1. Uvod:

 

Syntaxia jazyka Java je velmi podobna syntaxii jazyka C. Lisi sa od semantiky[K1]  jazyka C predovsetkym v tom, ze v Jave sa neda priamo pracovat s pamatou (nemame k dispozicii ukazatele) a vsetky objekty (vratane poli) su alokovane dynamicky. Java je silne typovany jazyk, tzn. ze kazda premenna musi mat neaky typ.

 

 

2. Historia:

 

Od roku 1991 vyvijala firma Sun Microsystems programovaci jazyk na principoch C a C++ pre bezne elektronicke zariadenia[K2]  ovladane zabudovanym mikroprocesorom. Veduci vyvojoveho tymu bol pan Gosling. Jazyk mal povodny nazov Oak (dub), kedze sa zistilo, ze programovaci jazyk s takymto nazvom uz existuje, vyvojova skupina ho premenovala na nazov Java (kava). V roku 1993 si firma uvedomila vzrastajucu dolezitost WWW a moznosti vyuzit Javu pre programovanie aplikacii pre WWW. V roku 1995 bola Java oficialne predstavena na konferencii.

 

 

3. Zposob spracovania programu v Jave:

 

Porovnanie fáz prekladu programu a vykonávania v jazyku C, Java a JavaScripte:

 

 

 

 

 


Preklad programu v jazyku C

 

Elipsa: Interpreter - JVM
java
 

 

 

 


Preklad a interpretácia programu v Jave

 

 

 

 

 

        Interpretácia skriptu

 

Niektoré konvencie pri písaní zdrojových textov v Jave: (odporúčane[K3]  konvencie)

 

Meno triedy začína veľkým písmenom (FirstApp, ArgsEcho, System, String).

Meno metódy (premennej) začína malým písmenom (out, println, formExit).

Konštanty sa zapisujú veľkými písmenami (EXIT_ON_CLOSE)

 

 

4. Komentare v Jave:

(pozn. analogické[K4]  s jazykom C, czn. nemôžu sa vnárať)

 

pojmy:

Dokumentacny komentar – v zdrojovom kode zacina znakmi /** (vytvori sa dokumentacia vo formate

.html vytvorena programom javadoc.exe)

 

1. /*           ...

...         */         - viacriadkový komentár

 

2. //            ...                     - jednoriadkový komentár

 

3. /**         ...

...         */                     - dokumentačný komentár, používa sa pre generovanie dokumentácie použitím programu „javadoc“

 

 

5. Datove typy:

 

Primitivne datove typy[K5] :

 

            Cele cisla:        byte, short, int, long

 

            Realne cisla[K6] :     float, double

 

            Znaky: char

 

Logicke hodnoty:   boolean

 

            Referencne datove typy[K7] :           Triedy, Rozhrania, Pola

 

 

Zakladne datove typy:

 

Meno triedy

Zakladny datovy typ

Počet bitov

Popis

Boolean

boolean

1

Logicky datovy typ

Char

char

16

Znakovy datovy typ

Byte

byte

8

Celociselny datovy typ

Short

short

16

Celociselny datovy typ

Int

int

32

Celociselny datovy typ

Long

long

64

Celociselny datovy typ

Float

float

32

Realny datovy typ

Double

double

64

Realny datovy typ

 

 

6. „Escape“ sekvencie:

 

Sekvencie

Hodnota (unicode)

Vyznam

‘\n‘

\u000A

Novy riadok (newline, linefeed – LF)

‘\r‘

\u000D

Navrat na zaciatok riadku (carriage return – CR)

‘\t‘

\u0009

Tabulator (tab – HT)

‘\b‘

\u0008

Posun dolava (backspace – BS)

‘\\‘

\u005C

Zpetne lomitko (backslash)

‘\‘‘

\u002C

Apostrof (single quote)

‘\“‘

\u0022

Uvodzovky (quote)

‘\f‘

\u000C

Nova stranka (formfeed – FF)

‘\007‘

\u0007

Pisknutie (beep)[K8] 

 

 

7. Operatory:

 

Unarne[K9]  – kde je iba jeden operand (napr. 3, -i, ++[K10] f, +4, l--[K11] , ~[K12] x)

 

pozn. v pripade pouzitia i++, alebo i-- sa k premennej i pripocita jednotka az po vyhodnoteni

vyrazu, v pripade pouzitia ++i, alebo --i sa k premennej i najprv pripocita jednotka a az potom[K13]  sa vyhodnoti vyraz

 

Binarne[K14]  – kde je operator zlava aj s prava obklopeny operandamy (napr. J/4, 5-3, l*f, i%[K15] 3)

 

Operator

Popis

+

Scitanie

-

Odcitanie

*

Nasobenie

/

Celociselne a realne delenie

%

Delenie modulo (tj. zvysok po celociselnom deleni)

 

Ternarne[K16]  (trojite) – je zlozeny z dvoch znakov, ktore su z lava a z prava obklopene operandmi (tj.

        budu tri operandy, napr. (i>j) ? 3 : 4)

 

Priradzovacie – zakladny operator priradenia je:  ‚=‘

 

Priradzovacie operatory

Pouzitie

Vyznam

l-hodnota += vyraz

l-hodnota = l-hodnota + vyraz

l-hodnota -= vyraz

l-hodnota = l-hodnota - vyraz

l-hodnota *= vyraz

l-hodnota = l-hodnota * vyraz

l-hodnota /= vyraz

l-hodnota = l-hodnota / vyraz

l-hodnota %= vyraz

l-hodnota = l-hodnota % vyraz

l-hodnota &= vyraz

l-hodnota = l-hodnota & vyraz

l-hodnota ^= vyraz

l-hodnota = l-hodnota ^ vyraz

l-hodnota |= vyraz

l-hodnota = l-hodnota | vyraz

l-hodnota >>= vyraz

l-hodnota = l-hodnota >> vyraz

l-hodnota <<= vyraz

l-hodnota = l-hodnota << vyraz

l-hodnota >>>= vyraz

l-hodnota = l-hodnota >>> vyraz

 

Relacne[K17]  – pomocou nich vytvarame booleovske vyrazy (napr. a != 6, 3 <= f < 10, i = = 5)

 

Operator

Vyznam

= =

Rovnost

!=

Nerovnost

&&[K18] 

Logicky sucin, zo skratenym vyhodnocovanim[K19] 

| |[K20] 

Logicky sucet, zo skratenym vyhodnocovanim[K21] 

&

Logicky sucin, s uplnym vyhodnocovanim[K22] 

|

Logicky sucet, s uplnym vyhodnocovanim[K23] 

!

Negacia

<

Mensie

<=

Mensie alebo rovne

>

Vacsie

>=

Vacsie alebo rovne

 

 

8. Bitove operacie:

 

pojmy:

Operacia – je vyraz tvoreny pomocou operand a operatorov ([K24]  2[K25]   +[K26]   3[K27]  )[K28] 

Booleovska operacia – je tvorena pomocou relacnych operatorov, v pripade pravdivosti vyrazu vracia

hodnotu true (teda 1), v opacnom pripade vracia hodnotu false (teda 0)

one‘s complement – jednickovy doplnok, negacia

Vyrazove prikazy – su vyrazy ukoncene bodkociarkou (napr. b = x + y;)

 

Bitove operacie vytvarame pomocou nasledujucich binarnych a unarnych operatorov:

 

Operator

Vyznam

&[K29] 

Bitovy sucin – AND

|[K30] 

Bitovy sucet – OR

^

Bitovy exkluzivny sucet – XOR (nonekvivalence)

<<

Posun dolava[K31] 

>>

Posun doprava[K32] 

>>>

Neznamienkovy posun doprava[K33] 

~

Jednickovy doplnok – negacia bit po bite – (unarny operator)

 

 

9. Riadiace struktury:

 

pojmy:

Iteracia – jeden priechod cyklom

 

Podmienkove prikazy if a if-else:

            Neuplna podmienka:

 

            if (booleovsky vyraz)

                                   prikaz;

 

            Uplna podmienka:

 

            if (booleovsky vyraz)

                                   prikaz 1;

                        else

                                   prikaz 2;

 

Podmienkovy prikaz pomocou ternarneho operatora:

(booleovsky_vyraz) ? vyraz 1 : vyraz 2

 

 

Cykly – Iteracne prikazy:

            Prikaz while:

 

                        while (logickyVyraz) {

                                   prikaz;

                        }

 

            Prikaz do-while:

 

                        do {

                                   prikazy;

                        } while (logickyVyraz);

 

Prikaz for:

 

            for (vyraz_start; vyraz_stop; vyraz_inter) {

                                    prikaz;

                        }

 

 

Prikaz switch: (tj. prepinac, alebo mnohonasobne vetvenie programu)

 

switch (vyraz) {

            case hodnota_1 : {

                        prikaz_1;

                        break;

            }

                                  

            case hodnota_n : {

                        prikaz_n;

                        break;

            }

            default : {

                        prikaz_default;

                        break;

            }

}

 

 

Navestia:

semsavrat:                    // za navestim moze nasledovat iba cyklus alebo zlozena zatvorka ‚}

 

            pozn. navestie sa vyuziva najme v kombinacii s break ked chceme jednym prikazom vyskocit naraz

          z viacerych cyklov

 

Prikazy break a continue:

break – ihned opusta cyklus

continue – skace na koniec cyklu (tzn. Preskoci zbytok tela cyklu)

 

Prikaz return:

return – v hlavnej metode main() ukoncuje cely program, inak sa casto pouziva na vracanie hodnoty daneho datoveho typu, ktory urcuje datovy typ pri definicii metody.

 

 

10. Triedy:

 

pojmy:

Class (trieda) – objektovy (referencny) datovy typ, predstavuje subor premennych a metod[K34] 

Wrapper class[K35]  – obalujuca trieda, pomocou nej sa moze zakladny datovy typ stat objektom

Final class – koncova trieda, nemoze byt zdedena

Abstract class – abstraktna trieda, jej pouzitie si vynucuje potomka (tj. musime pristupovat cez potomka),

pri abstraktnych triedach nemozeme vytvarat ich instancie

 

 

11. Metody:

 

pojmy:

Metoda – podprogram, funkcia

Procedura – je metoda bez navratoveho typu

Rekurzivne metody – v tele jej metody vola samu seba

Pretazene metody (overloaded) – maju rovnake mena ale rozne hlavicky, lisia sa poctom, typom, alebo

poradim formalnych parametrov

Final method – finalna metoda, nemoze byt prekryta (pozn. ale moze byt pretazena)

Abstract method – abstraktna metoda, vynucuje si prekrytie (cize zadefinovanie tejto metody v potomku)

Pozdna vezba – ista vlastnost volania metody, ked volame neprekritu metodu z daneho objektu, tak sa

vykona metoda definovana v predkovy.

 

Staticke metody (metody triedy) – metoda sa vztahuje iba na triedu, nevytvara sa z nej instancia (oznacuje sa klucovym slovom static[K36] ), taketo metody mozu pouzivat iba staticke premenne.

 

            pozn. kazda staticka metoda je implicitne finalna[K37] , tzn. klucove slovo ‚final‘ sa nemusi pisat

 

Metody instancie – metoda objektu (!bez pouzitia ‚static‘), pouziva sa v OOP[K38] , tzn. ze metoda je volatelna

        cez objekt a pouzitelna vždy a vsade.

 

 

12. Premenne:

 

pojmy:

Field (pole, oblast) – v Java Core API sa takto oznacuje premenna

Inicializacia premennej – prve priradenie hodnoty do premennej (samozrejme po deklaracii, tiez. sa deje

priradenie pameti)

Deklaracia premennej – definovanie (zavedenie) premennej

Referencna premenna (odkazujuca) – deklarovana na neprimitivny datovy typ, tzn. na datovy typ triedy,

alebo datovy typ pole (hodnota referencnej premennej je odkaz a v pripade ze jej hodnota je null

znamena, ze neobsahuje ziadny odkaz na ziadny existujuci objekt)

Member variables – clenske premenne, datove zlozky, alebo atributy triedy (su instantne a tiez. explicitne

premenn[K39]e )

Class variables – premenne triedy (tiez. staticke premenne[K40]  a su explicitne..)

Implicitne inicializovana premenna – premenna inicializovana v konstruktore (v metode)

Explicitne inicializovana premenna – premenna inicializovana vonku v triede (ako clenska premenna)

Dopredna referencia – ked pouzitie premennej predchadza jej samotnej deklaracii (neplati to však pre

lokalne premenne)

 

Lokalne (premenne metod) – su deklarovane a viditelne len v tele metody, tiez. implicitna premenna[K41] 

Nelokalne (globalne[K42]  ) – mozu byt staticke (ako premenne triedy), alebo instantne (ako clenske premenne)

+Konstanty – premenne deklarovane pridanim klucoveho slova ‚final‘ (napr.  final int MAX = 10;)

           

pozn.

1. ked sa priradi do premennej neaka hodnota, ktora sa nezmesti do rozsahu typu premennej dojde

    preteceniu[K43] 

2. neinicializovane nelokalne primitivne datove zlozky maju impicitne danu hodnotu 0 a ostatne typy 

datovych zloziek hodnotu ‚null‘ (pozn. lokalne premenne deklarovane v tele metod musia byt[K44]  pred

pouzitim  inicializovane)

 

 

13. Polia:

 

pojmy:

Aray – pole, neprimitivny (referencny) datovy typ

Dlzka pola – znamena počet prvkov pola

 

Deklaracie napr. :

            int [] poleInt[K45]  = new int [20];                // deklaracia + inicializacia

 

Prikazom new – sa inicializuje a vyhradi (alokuje) pamet pre pole

Prikaz length – je clenska premenna, pomocou ktorej mozeme zistit dlzku pola

 

Pozor!

1.      Treti prvok jednorozmerneho pola ma index 2, kedze pole vždy zacina od indexu 0

2.      napr. pri dvojrozmernom[K46]  poli:  pole[][], prvy index predstavuje riadky[K47]  a druhy index stlpce[K48] 

 

 

14. Triedy a objekty:

 

pojmy:

Objektako pojem – je datovy prvok, tiez. kopia triedy (tzn. instancia triedy), ako treida – je zakladny[K49] 

rodic vsetkych tried (tj. Object.class)

Default constructor – implicitny konstruktor, automaticky vytvoreny prekladacom, ak neexistuje nas

vlastny, definovany, explicitny konstruktor

Overloadingpretazenie[K50] 

Overriding – prekrytie, (prekryt znamena preprogramovat, predefinovat, doplnit, napr. zadefinovat metodu

v potomkovy, ktora uz bola zadefinovana v predkovy[K51] )

Hiding – zatienenie (zakrit, napr. instantna premenna zatienena lokalnou premennou[K52] , potom však pristup

k instantnej premennej umoznime pomocou this)

Zapuzdrenie – encapsulation,

Perzistentne objekty – su to objekty (cize instancie tried) ulozene na disku

Serialization (serializacia) – ukladanie perzistentnych objektov

Inicializacia objektu pomocou metody – v pripade, ze v danej triede metoda vracia objektovy datovy typ[K53] ,

mozeme pridelit instanciu (volat objekt) pomocou takejto metody (v ostatnych pripadoch pomocou

new)

Autorizovany pristup k datam – ked zaistime, aby s datami (premennymi) nebolo mozne z vonkajska

triedy manipulovat inak, ako pomocou metod tejto triedy.

 

Deklaracie napr. :

            Obdelnik obd = new Obdelnik ( );                 // deklaracia + inicializacia

 

Deklaracia objektu – len pomocou referencnej premennej deklarovanej na datovy typ triedy

Konstruktor – specialna metoda, ma rovnake meno ako jej trieda, nemá ziadnu navratovu hodnotu a pouziva

sa hlavne na inicializovanie datovych prvkov[K54] 

Pretazene konstruktory – plati pre ne to iste ako pre pretazene metody (cize odlisuju sa typom, poctom a

poradim formalnych parametrov)

 

Prikazom new – sa vytvara instancia triedy (cize objekt)

Prikaz this – odkazuje na instantne premenne a metody triedy

Prikaz private – pristup k premennej, alebo k metode len z danej triedy

 

Zapuzdrenie dat (data encapsulation) – prvy pilier OOP[K55] , def. je to explicitne spojenie dat (cize premennych)

a metod danej konstrukcie triedy, tzn. premenne sa vyskytuju spolocne s metodami, ktore s nimi

manipuluju. Dosledkom zapuzdrenia je Autorizovany pristup k datam.

napr. :

public void setDen (int den) {

this.den = den;

}

 

public int getDen ( ) {

return den;

}

 

Dedicnost – druhy pilier OOP, preberanie premennych instancii a metod instancii.

pojmy:

Zakladna trieda – rodicovska trieda, predok, supertrieda  (tiez. nadtrieda)

Odvodena trieda – zdedena trieda, potomok, dedic, dcerska trieda (podtrieda, upresnenie triedy predka)

klucove slova:

extends (rozsirenie) – parameter pridavany do hlavicky triedy, a znamena ze trieda bude dedit od

rodicovskej triedy (tzn. prevezme bezozmeny instantne premenne a instantne

metody)

                        pozn. ak nerozsirime lubovolnu triedu prikazom extnds, tak sa automaticky pouzije

          implicitny rodic Object[K56] 

 

super – klucove slovo, ktorym sa vola konstruktor rodicovskej triedy

 

Polymorfizmus – treti pilier OOP, mnohotvarnost, volame akoby vždy tu istu metodu a ona prevadza vždy

nieco ine ( najlepsie sa vyuziva pomocou abstraktnych tried, tiez. volanie potomka cez predka)

napr. :

abstract class Zivocich {

String typ;

 

Zivocich (String typ) {  this.typ = new String (typ); }

public void vypisInfo ( ) {

System.out.print (typ + ", ");

vypisDelku ( );

}

public abstract void vypisDelku ( );

}

class Ptak extends Zivocich {

int delkaKridel;

 

Pak (String typ, int delka) {

            super (typ);

            delkaKridel = delka;

}

public void vypisDelku ( ) {

            System.out.print ("delka kridel: " + delkaKridel);

}

}

class Slon extends Zivocich {

int delkaChobotu;

 

Slon (String typ, int delka) {

            super (typ);

            delkaChobotu = delka;

}

public void vypisDelku ( ) {

            System.out.print ("delka chobotu: " + delkaChobotu);

}

}

public class PolymAbstr {

            public static void main(String[] args) {

                        Zivocich [] z = new Zivocich [2];

 

                        z[1] = new Ptak ("ptak", 3);

                        z[2] = new Slon ("slon", 4);

                        z[1].vypisInfo ( );

z[2].vypisInfo ( );

}

}

 

Metoda clone – kopirovanie objektu (napr. pri dedeni sa kopiruje objekt, instancia rodicovskej triedy)

Metoda equals – zistuje rovnost objektov (ako „= =“), pozn. ak su dva objekty rovnake musí metoda

hashCode( ) vracat rovnake cislo

Metoda hashCode – vracia pre každý objekt cislo typu int, ktore je po dobu zivota objektu stále rovnake

Metoda getClass – poskytuje informacie o lubovolnom objekte za behu programu

napr. :

class Rodic {

public int i;

public Rodic() { i = 1; }

}

 

public class Potomek extends Rodic {

public static void main(String[] args) {

Potomek dite = new Potomek();

System.out.println("Jmeno tridy je: " + dite.getClass().getName());

System.out.println("Jmeno rodicovske tridy je: " + dite.getClass().getSuperclass().getName());

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ukoncenie prace s objektmi:

Garbage collector – cistic pameti, automaticky uvolnuje z pamati nepotrebne objekty (System.gc( );)

napr. :

Obdelnik obd = new Obdelnik(5, 3);

obd = null;

System.gc( );

 

Finalizer – ukoncovac, ukoncuje pracu s objektami, je to instantna metoda, ktora nemá ziadne parametre,

nemozno ju pretazit (v hlavnej metode ju volam takto: System.runFinalization( );) a v danej triede

musí byt definovana iba nasledovne:

protected void finalize( ) throws Throwable {

            prikazy;

            super.finalize( );

}

 

 

15. Rozhranie – interface:

 

pojmy:

Implementacia – doplnenie, dokoncenie

Interface – rozhranie, podobne ako abstraktna trieda (odlisuje sa viacnasobnou dedicnostou[K57]  a moze

obsahovat iba metody a konstanty[K58] )

 

Prikazom implements – sa implementuje (doplni) do triedy rozhranie a nasledne sa moze pouzivat

Prikaz instanceof – operator, ktory za behu programu zistuje ci trieda implementuje urcite rozhranie

(pomocou tohto operatora vieme zistit napr. aj aktualny typ objektu na ktory odkazuje dana

referencna premenna)

 

 

16. Vnorene triedey:

 

Nested class – vnorena trieda (cize ide o neaku deklarovanu triedu v danej triede)

Static nested class – staticka vnorena trieda

Top-less class – trieda najvyssej urovne, trieda ktora obsahuje neaku vnorenu triedu (tiez. vonkajsia trieda[K59] )

Inner class – vnutorna trieda (tj. vnorena a nestaticka, po kompilacii: napr. Obdlznik$Vnutorna.class)

Anonymna vnutorna trieda – nie je vyditelne vyznacena hlavickou class (po kompilacii: napr.

Obdlznik$1.class)

napr. :

public interface Info {

void kdoJsem();

}

class Usecka {

int delka;

Usecka(int delka) { this.delka = delka; }

 

public Info informace() {

return new Info() {

public void kdoJsem() {

System.out.println("Usecka " + delka);

}

};    // konec prikazu return - středník nutný

}                 // konec metody informace()

}

public class Test {

public static void main(String[] args) {

Usecka u = new Usecka(5);

//    u.kdoJsem();                 // chyba

Info i = u.informace();

i.kdoJsem();

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17. Retazce:

 

Deklaracie napr. :

            String s1 = ²ahoj²;

            String s2 = new String(²ahoj²);

            String s2 = new String(s1);

 

Trieda String:

            Prikaz[K60]  compareTo – porovnavanie dvoch retazcov

            Prikaz compareToIgnoreCase – porovnavanie dvoch retazcov, bez ohladu na male a velke pismena

            Prikaz equals – zistuje ci su dva retazce zhodne

            Prikaz equalsIgnoreCase – zistuje ci su dva retazce zhodne, bez ohladu na male a velke pismena

Prikaz toLowerCase – prevod retazca na male pismena

Prikaz toUpperCase – prevod retazca na velke pismena

Prikaz concat – spojenie retazcov (to iste operatorom +)

Prikaz replace – vytvory retazec s nahradenymi znakmi

Prikaz substring – vytvori podretazec z retazca

Prikaz getChars – znaky z retazca uklada do pola retazcov

Prikaz startsWith – testuje zaciatok retazca urcitym podretazcom

Prikaz endsWith – testuje koniec retazca urcitym podretazcom

Prikaz trimorezava[K61]  biele znaky (tj. \r – navrat na zaciatok riadku, \n – novy riadok, \t - tabulator)

Prikaz charAt – ziskava jednotlive znaky z retazca

Prikaz indexOf – hlada v retazci zadany znak a vrati cislo pozicie znaku v retazci[K62] 

Prikaz lastIndexOf – hlada v retazci posledny vyskit zadaneho znaku a vrati cislo jeho pozicie

Prikaz valueOf – konvertuje zakldany datovy typ na retazec a opacne

Prikaz parse?[K63]  – pouziva sa tiez na konvertovanie, je rychlejsi ako valueOf

 

Trieda StringBuffer:

            Prikaz length – vrati dlzku retazca

            Prikaz capacity – vrati maximalnu moznu dlzku retazca (cize kapacitu)

            Prikaz ensureCapacity – meni kapacitu retazca

Prikaz setLenght – meni kapacitu retazca

Prikaz reverse – obrati cely retazec a ulozi ho do tej istej premennej (tj. prepise)

            Prikaz append – prida podretazec na koniec daneho retazca

            Prikaz delete – vymaze z retazca urcenu cast

            Prikaz deleteCharAt – maze jednotlive znaky

            Prikaz insert – vklada do retazca znaky a podretazce na presne urcene miesto v retazci

            Prikaz replace – nahradi v retazci urceny podretazec inym podretazcom

            Prikaz charAt – bez ovplivnenia retazca ziskava z neho jednotlive znaky

            Prikaz setCharAt – nastavi v retazci jednotlive znaky (zmena jednotlivych znakov za ine)

           

Trieda Character:

            Prikaz isDigitzisti[K64] , ci je dany znak cislo

            Prikaz isLetter – zisti, ci je dany znak pismeno

            Prikaz isLetterOrDigit – zisti, ci je dany znak cislo alebo pismeno

            Prikaz isLowerCase – zisti, ci je dany znak male pismeno

            Prikaz isUpperCase – zisti, ci je dany znak velke pismeno

            Prikaz isWhitespace – zisti, ci je dany znak „biely znak“ (tj. \n \r \t)

            Prikaz toLowerCase – vrati male pismeno urceneho pismena[K65] 

            Prikaz toUpperCase – vrati velke pismeno daneho pismena

            Prikaz digit – prevadza jednotlive znaky na cisla

 

Prikaz toString – metoda, ktoru automaticky obsahuje každý Objekt, ked sa neprekryje[K66]  vrati meno triedy,

oddelovaci znak @ a identifikacne cislo objektu, dalsie pouzitie: prevod[K67]  typu StringBuffer na String .

 

StringTokenizer.class – dokaze rozdelit retazec obsahujuci medzery[K68]  na niekolko retazcov

 

 

18. Baliky:

 

Prikaz import – vkladanie balikov, rozsiruje oblast platnosti tried

            pozn. balik java.lang predstavuje standardny import[K69] 

Prikaz package – vytvaranie balikov

            napr.  package moje.java;     // vytvori na disku adresar „moje“ a v nom podadresar „java“ a tam

   bude ukladat subory .class

 

Pristupove prava:

 

Specifikator

V tej istej (samotnej) triede

V inej triede toho isteho balika

V podtriede[K70]  toho isteho balika

V podtriede ineho balika

V inej triede ineho balika

private

ano

ne

ne

ne

ne

(neuvedene)

ano

ano

ano

ne

ne

protected

ano

ano

ano

ano

ne

public

ano

ano

ano

ano

ano

 

 

19. Vynimky:

 

Exception – vynimka, je jednou z velmi silnych bezpecnostnych prvkov Javy, (kompilator nuti

programatora reagovat na chybove styavy)

Exceptional event vynimocny stav, tiez. udalost

Throw exception – vyhodenie vynimky (napr. ²pri otvarani suboru nastala chyba!²), vynimku

vyhodime[K71]  prikazom throw

Handler – je metoda, ktora reaguje na udalost (napr. pri prikaze ²catch {blok}²)

Propagating exceptions – propagacia vynimky, tiez. sirenie vynimky[K72]  (pouziva sa za formalnymi

parametrami pomocou klucoveho slova throws)

 

Trieda Error:

Tato trieda[K73]  predstavuje zavazne chyby v JVM, reakcia na tento druh vynimky v nasom programe je

vacsinou nemozna

 

Trieda RuntimeException:

Asynchronne vynimky, pretoze sa tieto vynimky mozu vyskitovat hocikde[K74] , reakcia na tento druh vynimky je dobrovolna (napr. NumberFormatException[K75] )

 

Trieda Exception:

Synchronne vynimky (kontrolovane vynimky) – checked exceptions, musime ich osetrit prip. na ne reagovat. Najcastejsie sa vyskytuju v metodach, ktore pracuju so vstupmi a vystupmi (napr. IOException)

 

 

 

 

 

 

 

Zakladna hierarchia objektov vynimok:

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Kompletne osterenie vynimky:

(pomocou konstrukcie try, catch a finaly):

try – chraneny usek, do tohoto bloku sa pise bezny program, v ktorom moze vyskocit vynimka

catch – bezprostredne nasleduje za try a hovori na aku vynimku sa bude reagovat a ako (catch

 zachycuje vynimku)

finaly – koncovy blok, kod v jeho tele sa prevedie vždy[K76]  (blok finaly sa typycky pouziva pre

 uvolnenie prostriedkov[K77]  pouzitych v bloku try)

 

Prikaz[K78]  PrintStackTrace – v pripade vyskytu vynimky vypise chybove hlasenie (rozumna reakcia na

vynimku, ak ju nechceme riesit)

Prikaz getMessage – vyhadzuje popis chyboveho stavu

+Prikaz System.setErr[K79]  – presmeruje chybovy vypis do suboru

+Prikaz System.setOut – presmeruje chybovy vypis do suboru

 

 

20. Adresare a subory:

 

File.class – reprezentuje subor alebo adresar v hostitelskom operacnom systeme

            methods:

            exists – testuje ci dany subor reprezentovany objektom existuje

            canRead, canWrite – tieto metody testuju, ci mame pravo z danych suborov citat, resp. zapisovat

            isDirectory, isFile – tieto dve metody zistuju, ci sa jedna o normalny subor, alebo o adresar

            lastModified, lenght – zistuju datum poslednej zmeny a dlzku daneho suboru

            delete – zmaze reprezentovany subor

            renameTo (File) – premenuje subor na meno reprezentovane inym objektom triedy File

            list – vrati zoznam vsetkych suborov v danom adresary ako pole retazcov

            mkdir, mkdirs – vytvori novy adresar (druha varianta - aj s pridavnou cestou)

 

 

21. Citanie zo vstupov a zapis na vystupy:

(prudy znakov a prudy bajtov)

 

pojmy:

Stream – tok dat, prud, kanal

Vstupny prud – kanal pre citanie

Vystupny prud – kanal pre zapis

Pipe – rura, je idealne zariadenie pre ulozenie docasnych dat, vznika v pamati a preto ma vysoko-rychlostnu

dostupnost

 

Zakladne triedy:

Reader.class – abstraktna trieda pre znakovo orientovane prudy

            read( )[K80]  – citanie znakov z otvoreneho znakoveho prudu

 

Writer.class – abstraktna trieda pre znakovo orientovane prudy

            write( ) – zapis znakov do otvoreneho znakoveho prudu

 

InputStream.class – abstraktna trieda pre bajtovo orientovane prudy

            read( ) – precita jeden bajt z otvoreneho vstupneho prudu, ked je zdroj bajtov uzatvoreny vrati

   hodnotu -1

 

OutputStream.class – abstraktna trieda pre bajtovo orientovane prudy

            write( ) – protiklad metody read ( ), ktory zapise do vystupneho prudu jeden bajt

 

Triedy vlastnosti (filtre):

(sluzia na spracovanie dat, prevadza sa po fyzickom presune dat)

 

BufferedReader.class – vyuzitie vyrovnavacej pamate, bufferovane citanie pre znaky

            readLine[K81]  ( ) – nacita celey riadok zo vstupneho suboru (bez koncovych znakov riadky)

           

BufferedWriter.class – vyuzitie vyrovnavacej pamate, bufferovany zapis pre znaky

writeLine ( ) – zapise cely riadok do vystupneho suboru (bez koncovych znakov riadky)

newLine ( ) – prida ukoncovacie znaky pri zapise retazca do vystupneho suboru

 

BufferedInputStream.class – vyuzitie vyrovnavacej pamate, bufferovane citanie pre bajty

 

BufferedOutputStream.class – vyuzitie vyrovnavacej pamate, bufferovany zapis pre bajty

 

LineNumberReader.class – odvodena trieda od BufferedReader

            getLineNumber ( ) – zistuje kolko riadkov sme uz precitali

            setLineNumber ( ) – nastavuje ine cislo riadky

 

PushbackReader.class – vratenie nacitaneho znaku spat do vstupneho prudu pre znaky, vrati precitany znak[K82]

 

PushbackInputStream.class – vratenie nacitaneho znaku spet do vstupneho prudu pre baty, vrati precitany

  bajt

 

PrintWriter.classformatovany vystup[K83]  pre znaky

            PrintWriter (Writer out, boolean autoFlush) – rozsireny konstruktor, formatovany vystup

s riadkovanym bufferovanim

 

PrintStream.class – formatovany vystup pre bajty

 

DataInputStream.class – neformatovane bajtove citanie zakladnych datovych typov

            readBoolean[K84]  ( ) – citanie zakladnych datovych typov

                        :

                        :

            readDouble ( ) – citanie zakladnych datovych typov

 

DataOutputStream.class – neformatovany bajtovy zapis zakladnych datovych typov

            writeBoolean ( ) – zapis zakladnych datovych typov

                        :

                        :

            writeDouble ( ) – zapis zakladnych datovych typov

            writeChars[K85]  (String s) – zapisuje znaky do retazca pre vystupny bajtovy prud

 

ObjectInputStream.class – bajtove citanie lubovolnych objektov (proces serializacie)

            readObject ( ) – citanie objektov

 

ObjectOutputStream.class – bajtovy zapis lubovolnych objektov (proces serializacie)

            writeObject ( ) – zapis objektov

 

OutputStreamWriter.class – most medzi znakovym prudom a bajtovym prudom, vstup znakov a vystup

           bajtov

 

InputSteramReader.class – most medzi bajtovym prudom a znakovym prudom, vstup bajtov a vystup

         znakov

 

Triedy pre fyzicky presun:

 

FileReader[K86].class   – citanie zo suboru, vstup znakov

            skip (long pocet) – preskoci pri citani zadany počet znakov

            boolean markSupported ( ) – zistuje ci su prudom podporovane operacie reset( ) a mark (long

platnost)

            reset ( ) – vrati sa na zaciatok suboru

            mark (long platnost) – oznaci aktualnu poziciu v subore znackou, na ktoru sa potom bude vracat

metoda reset

 

FileWriter.class – zapis do suboru, vystup znakov

FileWriter[K87]  (String meno, boolean append) – tento druhy konstruktor umoznuje subor rozsirovat (tj.

pripisovat na koniec)

            flush ( ) – okamzite zapisanie bufferovanych dat na disk

 

FileInputStream.class – vstupy bajtov zo suboru

 

FileOutputStream.class – vystupy bajtov zo suboru

 

PipedWriter.class – zapis znakov do rury

 

PipedReader.class – citanie znakov z rury

 

PipedInputStream.class – citanie bajtov z rury

 

PipedOutputStream.class – zapis bajtov do rury

 

Triedy pre pracu so zariadeniami:

 

Zariadenie

Presun znakov

Presun bajtov

pamat

CharArrayReader.class
CharArrayWriter.class

StringWriter.class

ByteArrayInputStream.class

ByteArrayOutputStream.class

StringBufferInputStream.class

subor

FileReader.class

FileWriter.class

FileInputStream.class

FileOutputStream.class

rura

PipedReader.class
PipedWriter.class
PipedInputStream.class

PipedOutputStream.class

 

RandomAccessFile.classnahodny[K88]  pristup k suborom

            lenght ( )vrati velkost suboru[K89] 

            skipBytes (int n) – preskoci nasledujucich n bajtov

            getFilePointer ( ) – vrati aktualnu poziciu v subore

            seek (long pozice[K90] ) – nastvi aktualnu poziciu v subore

            setLenght (long velikost) – nastavit velkost suboru, cim mozme subor rozsirit alebo odrezat

 

 

22. Systemove akcie:

 

System.class – tato trieda dava k dispozicii tri vstupno/vystupne prudy:

            System.in[K91]  – vstupny prud (InputStream)

            System.out – vystupny prud (PrintStream)

            System.err – chybovy vystupny prud (PrintStream)

           

methods:

setIn ( )[K92]  – presmerovanie, zmena vstupnych prudov

            setOut ( ) – presmerovanie, zmena vystupnych prudov (napr. na presmerovanie do suboru)

            setErr ( ) – presmerovanie, zmena chybovych vystupnych prudov (napr. do suboru)

            getProperty ("key[K93] ") – vrati informaciu o pozadovanej systemovej vlastnosti

            currentTimeMillis ( ) – vrati pocet milisekund od 1.1.1970

 

Runtime.class – (inicializacia: Runtime r = Runtime.getRuntime( );[K94] )

            methods:

            totalMemory ( ) – vracia celkovu velkost pamati dostupnu JVM v bajtoch

            freeMemory ( ) – vrati velkost prave dostupnej pamati

 

Systemove atributy:

 

kluc

hodnota

vyznam

file.separator

\

oddelovac adresarov v ceste path

line.separator

\r\n

ukoncenie riadky

path.separator

;

oddelovac jednotlivych ciest v path

java.class.path

.

adresare, kde su ulozene subory .class

java.class.version

46.0

verzia .class

java.home

C:\progra~1\jdk1.2\jre

adresar, z ktoreho je spustany interpreter Javy

java.vendor

Sun Microsystem Inc.

zdroj (predajca) tejto instalacie Javy

java.vendor.url

http://java.sun.com/

URL predajcu

java.version

1.2

verzia Javy

os.arch

x86

typ procesora v architekture operacneho systemu

os.name

Windows NT

typ operacneho systemu

user.dir

D:\java\ujj

aktualny adresar

user.home

C:\WINNT\Profiles\herout

domovsky adresar

user.name

herout

login name uzivatela

 

 

23. Vlakna:

 

pojmy:

Vlakna (threads[K95] ) – programove stopy (tj. viac programov beziacich naraz vedla seba), ktore bezia skutocne

paralelne v pocitacoch s vacsim poctom procesorov, v pripade jedneho procesora bezia pomocou

predavania riadenia (bezia pseudoparalelne)

Korutiny (couroutines) – kooperujuce procesy (light-weight process), paralelne nezavisle programove

casti deleneho programu, v Jave sa pouziva termin vlakna

Predavanie riadenia – striedanie vlakien

Preemptivne planovanie – mechanizmus, ktory zabezpeci, aby sa do behuschopneho stavu dostalo vlakno

s vyssou prioritou, ako ma prave beziace vlakno

Zdielanie casu (time-scaling) – casove kvanta, vlakna s rovnakou prioritou sa pravidelne striedaju

(Windows a Unix toto splnaju, podporuju)

Time-Out – uplinutie casu (po uplinuti urciteho casu nastava timeout, napr. v metode: join (100);)

Critical sections – kriticke sekcie, useky kodov, ktore mozu sposobovat pri paralelnom behu problemy (tj.

v pripade ked vlakna pracuju nad rovnakymi datami)

Monitor – programovy modul, urceny pre pracu v paralelnom prostredi (v monitore moze vzdy len jeden

proces, v jednom casovom okamihu aktivne prevadzat progarm), implicitne ho obsahuje kazdy

objekt a aktivuje sa pomocou klucoveho slova synchronized[K96] 

Synchronizovane bloky – kriticke sekcie, sa pouziva na oznacenie mensich usekov nez je metoda (tiez

pomocou klucoveho slova synchronized)

Model[K97]  (producent-konzument) – oddelenim I/O operacii (vstupno/vystupnych, producenta od

komzumenta) preventivne riesime problematiku synchronizacie

Starvation – hladovanie, ked vlakno ktore sice ziskalo monitor nema dostatok systemovych prostriedkov,

aby robilo pokroky vo svojej cinnosti (napr. v neakych vypoctoch), caka na uvolnenie neakych

zdrojov

Deadlock – uvaznuti, ked hladovanie zposobi zablokovanie celeho vypoctu

Daemon – demon, specialne vlakno, toto vlakno moze zit aj ked program uz skoncil (tj. hlavna metoda

main uz dobehla), vlakno sa oznaci za demona pomocou metody setDaemon (true);

 

Thread.class – vynimka, ktora sa moze vyskitnut pri pouzivani vlakien je InteruptedException[K98] 

            methods:

run ( ) – popisuje co robi vlakno pri svojom behu

            start ( ) – spustenie vlakna

            sleep (x)predanie riadenia[K99] , uspi vlakno na x milisekund

            yield ( ) – dobrovolne prenecha (predava riadenie) dalsiemu vlaknu

            getPriority ( ) – zisti prioritu vlakna

            setPriority ( ) – nastavy prioritu vlakna (pricom priorita je cele nezaporne cislo)

            currentThread ( ) – zisti aktualne beziace vlakno

            join ( ) – tato metoda caka na ukoncenie svojho vlakna (metoda je pretazena[K100] )

            isAlive ( ) – zisti ci uz dane vlakno skoncilo alebo este nie

            interrupt ( ) – dokaze prerusit ine vlakno (pozor! neprevadza vlakno do mrtveho stavu) a sposobit

predcasne prebudenie (ak vlakno bolov uspane metodou sleep)

 

Object.class – rodicovska trieda vsetkych objektov (je na vrchu hierarchie dedicnosti..)

            wait ( ) – zastavi vlakno az do jeho prebudenia metodou notify (,ktorou[K101]  vlastne vola ine vlakno)

            notify ( ) – prebudi vlakno, ktore bolo zastavene metodou wait (tiez je pretazena metodou, ktora caka

len isty cas)

            notifyAll ( ) – prebudi vsetky vlakna, ktore boli pozastavene metodou wait

 

Stavy vlakna:

 

 

 

 

 

 

 

 

 

 

 

 


Nove vlakno – vlakno bolo vytvorene (najcastejsie pomocou new), ale zatial nebolo spustene pomocou

metody start ( )

 

Behuschopne vlakno (runable) – vlakno uz bolo spustene metodou start ( ), (tychto vlakien moze byt viacej,

ale len jedno vlakno je prave beziace)

 

Nebehuschopne vlakno – vlakno, ktore bolo uspane metodou sleep ( ), alebo vlakno caka na metodu wait ( ),

alebo caka na vstup, alebo vystup[K102] 

 

Mrtve vlakno – vlakno, ktoreho metoda run ( ) uz skoncila

 

 

24. Pouzivane pojmy:

 

Java Core API (Aplication Programming Interface) – aplikacne programove rozhranie, obasahuje viac

ako tisic standardnych knihovnych tried (rt.jar)

JIT kompilator (Just In Time) – po skontrolovani spravnosti bajtkodu vyrobi v pameti .exe program

Java Virtual Maschine JVM – zistuje vazby na hardver a interpretuje bajtkod, =interpreter

Applet – mala aplikacia spustana v prosterdi prehliadaca

GUI – graphic user interface, graficke uzivatelske rozhranie

IDE – integrated developer environment, vizualne vyvojove prostredie (nap. Visual Dev Studio, JCeator,

JBilder,…)

Primitive Data Type – zakladne (primitivne) datove typy

OOP – objektovo orientovane programovanie

Formalne parametre – parametre v hlavicke v gulatych zatvorkach

Oblast viditelnosti – priestor mien, telo metody

Implicitne – vnutorne, lokalne, rozsirujuca konverzia pri pretypovani

Explicitne – vonkajsie, globalne, zuzujuca konverzia při pretypovani

Alokovanie pamati (memory allocation) – vyhradenie pamati

Referencia – odkaz

Static initialization block – staticky inicializacny blok, pouziva sa napriklad pri inicializacii konstantneho

pola (pouz. static { … })

Plne kvalifikovane meno – meno triedy vratane balika v ktorom sa nachadza + meno metody, alebo

premennej (napr. java.lang.Math.PI)

AWT – abstract windows toolkit, balik v Java Core API pre tvorbu GUI (import java.awt.*;)

Datova zlozka – premenna

Funkcna zlozka – metoda

Kniznicna metoda – metoda z Java Core API

Buffer – vyrovnavacia pamet, vyditelne zrychluje zapis a citanie

Prefix – predpona

Sufix – pripona (napr. pripona L, alebo l, ktora urci ze pojde o cislo typu long: long j = 56L)

Blok – zlozeny prikaz (syntakticka konstrukcia), umoznuje zapisat skupinu prikazov, zacina zlozenou

zatvorkou ² { ² a ukonci zatvorkou ² } ²

Modifikatory – modifikuju pristup k jednotlivym triedam, datovym zlozkam a metodam.

Key (kluc) – meno atributu (pri systemovych vlastnostiach okolneho prostredia os[K103] )

Identifikator – meno premennej, metody, triedy..

 

Jbuilder:

Komponenty – predprogramovane sucasti uzivatelskeho rozhrania aplikacii (napr. ikony vo

vizualnom programovani)

Udalosti (events) – pokyny na riadenie GUI

Modul – reusable package,

Dvojcestny nastroj – zdrojovy kod je uzko prepojeny s vizualnym navrhom

 

Vseobecne:

WYSIWYG editory – vizualne programovanie (Cool Edit, CBuilder, JBuilder,…)

Argument – parameter

 

 

25. Teoreticke poznamky:

 

Ked sme zadefinovali konstruktor s parametrami, prekladac uz nevytvori implicitny konstruktor.

 

Je velmi vhodne pripravit v nasej triede mimo ostatnych konstruktorov aj jeden bez parametrov[K104] (aj kde ju nepotrebujeme) , aby sme usetrili starosti[K105]  buducim potomkom tejto tridy.

 

Ak trieda obsahuje co len jednu abstraktnu metodu, cela trieda musí byt abstraktna (tj. v hlavicke predpona abstract). Pouzitie takejto abstraktnej metody je mozne iba cez potomka, co nas zase nuti v potomkovi zadefinovat (prekrit) vsetky zdedene abstraktne metody (..a abstraktne premenne).

 

Vsetky triedy, ktore nemaju specifikovany balik, patria automaticky do implicitneho balliku default package.

 

Konstrukcia try-finaly – nemusi mat s vynimkami nic spolocneho, pouz. sa, ked chceme, aby sa konkretny usek kodu (blok finaly) vždy previedol po useku try.

 

Pri volani lubovolneho konstruktora sa najprv prevedie kod konstruktora rodicovskej triedy (..rodicovskych tried v dedicskej hierarchii), kod konstruktora nasej triedy sa prevedie jako posledny.

 

Referencna premenna deklarovana na typ triedy moze obsahovat odkaz na tuto triedu alebo na lubovolnu triedu z jej potomkov.

 

Pre rozsiahlejsie vlaknove aplikcie je vhodne pouzit zoskupovanie rovnakych typov vlakien do jednotlivych skupin, s ktorymi sa potom da pracovat naraz. Pre pracu zo skupinami existuje v triede Thread mnozstvo metod. Ak nepouzijeme skupiny na nase vlakna, tak impicitne vsetky patria do default skupiny.


 [K1](vyznamu jazykovych jednotiek)

 [K2]odborne - vstavane systemy

 [K3]Zposoby zapisu identifikatorov

 [K4]obdobne, podobne

 [K5]primitive data types

 [K6]desatinne cisla, (pozn. semilogaritmicky zapis: 1.54 * 106 je ekvivalentne so zapisom 1.54e6, alebo 1.54E6, v oboch pripadoch sa jedna o cislo 1540000 (napr.: 0.2e-4 = 0.2*10-4 = 0.00002))

 [K7]su prvkami OOP, su neprimitivne a odkazujuce, cize referencne

 [K8]v Jave funguje pipnutie iba cez zvukovu kartu

 [K9]aritmeticke operacie

 [K10]specialny unarny operator - inkrement

 [K11]specialny unarny operator - dekrement

 [K12]negovane

 [K13]cize pri vyhodnocovani vyrazu uz bude pocitat so zvecsenu alebo zmensenu hodnotu premennej ‚i‘ o jedna

 [K14]aritmeticke operacie

 [K15]delenie modulo (tj. zvysok po celociselnom deleni)

 [K16]podmienene vyrazy, tiez patri do aritmetickych operacii

 [K17]porovnavacie operatory

 [K18]konjunkcia

 [K19]v hlavicke danej metody sa operacia nevyhodnocuje

 [K20]disjunkcia

 [K21]v hlavicke danej metody sa operacia nevyhodnocuje

 [K22]v hlavicke danej metody sa operacia vyhodnocuje

 [K23]v hlavicke danej metody sa operacia vyhodnocuje

 [K24]operacia, vyraz

 [K25]prvy operand

 [K26]binarny operator

 [K27]druhy operand

 [K28]operacia, vyraz

 [K29]bitova konjunkcia

 [K30]bitova disjunkcia

 [K31]sa obcas pouziva pre rychle nasobenie n-tou mocninou

 [K32]sa obcas pouziva pre rychle delenie n-tou mocninou

 [K33]sa pouziva pre neznamienkove delenie n-tou mocninou, funguje len pre kladne cisla, pre typy int a long

 [K34]podprogramy

 [K35]v Jave su zakladne datove typy obalene triedou

 [K36]modifikator statickej metody

 [K37]tj. takato metoda nemoze byt predefinovana potomkom

 [K38]objektovo orientovane programovanie

 [K39]premenna deklarovana vonku v triede (von - zhladiska metody)

 [K40]nevytvaraju sa z nich instancie, tzn. každý objekt danej triedy vyuziva tu istu triedovu premennu

 [K41]premenna deklarovana dnu v metode

 [K42]nevytvaraju sa z nich instancie, tzn. každý objekt danej triedy vyuziva tu istu triedovu premennu

 [K43]proti preteceniu sa chranime pretypovanim premennej na iny datovy typ, ide o tzv. rozsirujucu a zuzujucu konverziu

 [K44]!v opacnom pripade kompilator vyhodi chybu

 [K45]identifikator referencnej premennej typu_pole

 [K46]maticovom

 [K47]tj. os-y

 [K48]tj. os-x

 [K49]implicitne dany

 [K50]rovnaky identifikator, odlisna hlavicka

 [K51]tj. v rodicovskej triede

 [K52]tj. s rovnakym identifikatorom

 [K53]referencna metoda

 [K54]cize premennych

 [K55]objektovo orientovane programovanie

 [K56]vsetky triedy v Jave maju jedneho spolocneho, priameho alebo nepriameho predka a to triedu Object

 [K57]iba v rozhrani je povolena viacnasobna dedicnost, tzn. dana trieda moze implementovat naraz viac rozhrani, (inak v jave každa trieda moze mat iba jedneho rodica)

 [K58]premenne v ziadnom pripade

 [K59]z pohladu vnorenej triedy

 [K60]kniznicna metoda

 [K61]zmaze

 [K62]cize vrati jeho index

 [K63]napr. parseLong, parseDouble, parseFloat, atd…

 [K64]tj. vrati TRUE, alebo FALSE

 [K65]cize znaku, znak = pismeno

 [K66]tzn. neprekrije vlastnou metodou ktora len upravi alebo doplni originalnu metodu super.toString()

 [K67]konvertovanie

 [K68]medzery, alebo iny specifikovany znak (pouzitim rozsireneho konstruktora)

 [K69]tzn. nemusime pisat ²import java.lang.*;²  (vsetky triedy balika ²java.lang²  su zname vo vsetkych kompilacnych jednotkach)

 [K70]v potomoku

 [K71]aby sme mohli vynimky pouzivat, musime ich vediet vyvolat (a to prikazom ²throw²)

 [K72]kompilator hlada vhodny handler, ak ho nenajde v danej konstrukcii try-catch, tak dalej hlada v dinamicky nadradenom bloku. Ak nenajde vhodny handler v aktualnej triede, tak prejde do triedey, ktora vyvolala to hladanie a vhodny handler najde tam (tj. v triede danej vynimky - pouzitim prikazu throws)

 [K73]tj. trieda (.class) vynimok

 [K74]nie len pri volani urcitych metod

 [K75]tato vynimka znamena, ze sa pokusame previest neaky retazec znakov na cislo, ktory nema s cislom nic spolocne (napr. „Ahoj“)

 [K76]aj v pripade ze blok try skoncil s vynimkou aj v pripade ze skoncil „normalne“ (tj. bez vyvolania vynimky)

 [K77]napr. pre zatvorenie otvorenych suborov apod.

 [K78]metoda z Java Core API

 [K79]tzn. metoda setErr( ) definovana v triede System

 [K80]hlavna metoda tejto triedy

 [K81]cita len znaky

 [K82]napr. pri citani znakov, ked podla dalsieho nasledujuceho znaku vieme ze sa citanie ma zastavit, tento znak vsak potrebujeme vratit

 [K83]na druhej strane formatovany vstup - nieje priamo podporovany Java Core API

 [K84]tieto metody platia aj pre DataOutputStream

 [K85]nahrada za writeLine( ), ktore nieje podporovane Java Core API

 [K86]moze vyvolat vynimku FileNotFoundException

 [K87]druhy konstruktor s rozsirujucou funkciou

 [K88]obojsmerny, citanie aj zapis

 [K89]vhodne, ak sme tuto hodnotu neziskali z instancie triedy File

 [K90]hodnota merana od zaciatku suboru

 [K91]referencne premenne:

 [K92]metody:

 [K93]podla tabulky systemovych atributov

 [K94]cize inicializacia pomocou metody

 [K95]..k vlaknam sa da pristupovat aj cez rozhranie Runable

 [K96]tento modifikator sa pise pred metodu, ktoru chceme aby prebehla s pouzitim monitoru (cize zastavy vsetky vlakna a prevedie sa dana metoda)

 [K97]napr. jedno vlakno cita zo suboru a subezne druhe vlakno donho zapisuje

 [K98]..je to tiez trieda, kedze aj vsetky vinimky su definovane v jednotlivych triedach

 [K99]tj. pridelenie procesora

 [K100]kedy sa na ukoncenie vlakna caka len urceny pocet milisekund

 [K101]zastavenim

 [K102]pozor!: I/O metody maju vacsiu prioritu

 [K103]operacneho systemu

 [K104]cize prekrity implicitny konstruktor

 [K105]tj. aby v buducich potomkoch nebolo nevyhnutne nutne vytvarat konstruktor len koli volaniu predka