You are on page 1of 16

Objektovo orientované

23
programovanie
Ing. Peter Kačur, September 2021, verzia 1.0
(Tento dokument je možné šíriť iba za podmienky zachovania jeho pôvodného
obsahu)
24 Trieda v Jave

 Trieda je skupina budúcich objektov,


ktoré majú spoločné vlastnosti.
 Trieda je akási šablóna na základe ktorej
sú vytvorené objekty.
 Trieda je logická entita, nemôže byť
fyzická.
 Trieda v Jave obsahuje:
 Vlastnosti (Fields)
 Metódy (Methods)
 Konštruktory (Constructors)
 Bloky (Blocks)
 Vnorenú triedu a rozhranie (Neasted class
a interface)
25 Syntaktický zápis triedy v Jave
1. class meno_triedy { 1.//Java Program ilustrujúci ako definovať triedu a
vlastnosti. //Definovanie triedy Student.
2. clen;
2.class Student{
3. metoda; 3. //definovanie vlastností
4. } 4. int id; //vlastnosť alebo dátový člen alebo inštančná
premenná
5. String meno;
6. // vytvorenie metódy main vo vnútri triedy Student
7. public static void main(String args[]){
 Môže byť viac tried vo
8. //Vytvorenie objektu alebo inštancie
viacerých java
9. Student s1=new Student(); //vytvorenie objektu
súboroch
triedy Student
 Ak je viac tried v
10. //Výpis hodnôt objektu
jednom Java súbore, je
11. System.out.println(s1.id); // prístup k členu cez
dobré ho pomenovať
referenčnú premennú
podľa mena triedy v
12. System.out.println(s1.meno);
ktorej sa nachádza
13. }
metóda main()
14.}
26 Main v inej triede
1. // Java Program demonštrujúci umiestnenie metódy main v inej triede
2. // Vytvorenie triedy Student.
3. class Student{
4. int id;
5. String meno;
6. }
7. //Vytvorenie inej triedy TestStudent1, ktorá bude obsahovať metódu main
8. class TestStudent1{
9. public static void main(String args[]){
10. Student s1=new Student();
11. System.out.println(s1.id);
12. System.out.println(s1.meno);
13. }
14. }
27 Inštančná premenná v Jave

 Je to premenná vytvorená vo vnútri triedy ale mimo metódy je známa ako


inštančná premenná
 Inštančná premenná nezaberá pamäť v compile-time.
 Inštančná premenná obsadzuje pamäť až v runtime keď je objekt resp.
inštancia vytvorená.
28 Metóda v Jave

 Je to vlastne funkcia, ktorá je používaná na vyjadrenie správania sa


objektu.
 Výhody metód:
 Znovupoužiteľnosť kódu
 Optimalizácia kódu
30 Spôsoby vytvorenie objektov v Jave

 Pomocou kľúčového slova new


 Pomocou metódy newInstance()
 Pomocou metódy clone()
 Pomocou deserializácie (deserialization)
 Pomocou ,,továrenských“ (factory) metód

O týchto spôsoboch si povieme viac neskôr, zatiaľ sme si ukázali prvú možnosť.
31 Kľúčové slovo new

 Slúži na alokáciu pamäte počas runtime.


 Všetky objekty zaberajú pamäť v oblasti pamäte, ktorú nazývame Heap
(hromada, kopa)
32 3 spôsoby inicializácie objektu

 Inicializácia znamená uloženie dát do objektu:


 Referenčnou premennou
 Metódou
 Konštruktorom
33 Inicializácia cez referenciu - príklad
1.class Student{
2. int id;
3. String meno;
1. class Student{ 4.}
2. int id; 5.class TestStudent3{
3. String meno; 6. public static void main(String args[]){
7. //vytvorenie objektov
4. }
8. Student s1=new Student();
5. class TestStudent2{ 9. Student s2=new Student();
6. public static void main(String args[]){ 10. //Inicializácia objektov
7. Student s1=new Student(); 11. s1.id=3;
12. s1.meno=“Peter";
8. s1.id=3;
13. s2.id=7;
9. s1.meno=“Peter"; 14. s2.meno=“Ján";
10. System.out.println(s1.id+" "+s1.meno); 15. //Vypísanie dát
// výpis členov s bielym znakom 16. System.out.println(s1.id+" "+s1.meno);
11. } 17. System.out.println(s2.id+" "+s2.meno);
12. } 18. }
19.}
34 Ako je to v pamäti?

 Objekty sa ukladajú v oblasti pamäte nazývanej Kopa (Heap)


 Referenčné premenné s1 a s2 odkazujúce na objekty sú v zásobníku
(Stack)
35 Inicializácia pomocou metódy - príklad

1. class Student{ 10. class TestStudent4{


2. int id; 11. public static void main(String args[])
{
3. String meno; 12. Student s1=new Student();
4. void vlozZaznam(int i, String m){ 13. Student s2=new Student();
5. id=i; 14. s1.vlozZaznam(3,“Peter");
15. s2.vlozZaznam(7,“Ján");
6. meno=m; 16. s1.zobrazInformacie();
7. } 17. s2.zobrazInformacie();
18. }
8. void zobrazInformacie(){System.out.println
(id+" "+meno);} 19. }

9. }
37 Inicializácia cez konštruktor v Jave
Konštruktory v Jave (Constructors)

 Konštruktor je špeciálny typ metódy, ktorý sa používa na inicializáciu


objektu.
 Je volaný automaticky vždy keď sa vytvorí inštancia triedy pomocou
kľúčového slova new().
 Ak explicitný konštruktor nebol vytvorený programátorom, zavolá sa
implicitný konštruktor vytvorený kompilátorom. Tento konštruktor bude bez
argumentov tzv. defaultny konštruktor.
 V čase keď sa zavolá konštruktor, alokuje sa aj pamäť pre nový objekt.
38 Konštruktory – pravidlá pre ich tvorbu

Konštruktor:
1. Jeho meno musí byť rovnaké ako meno triedy.
2. Nesmie mať explicitný návratový typ.
3. Nesmie byť abstract, static, final a synchronized
4. Môže mať modifikátor prístupu (private, protected, public, default)
39 2 Typy konštruktorov

1. Defaultný konštruktor (non-arg) – Konštruktor, ktorý nemá parametre. Jeho


úlohou je nastaviť vlastnostiam objektu východzie hodnoty (0, null ...).
2. Parametrizovný konštruktor – Konštruktor, ktorý má istý počet parametrov. Slúži
na nastavenie rozdielných hodnôt odlišným objektom.
40 2 Typy konštruktorov - Príklad
Defaultny konštruktor Parametrizovaný konštru.
1. class Ziak{
1. class Bicykel{
2. int id;
2. //vytvorenie defaultneho konštruktora 3. String meno;
4. //vytvorenie parametrizovaného konštruktora
3. Bicykel(){System.out.println("Bicykel
5. Ziak(int i, String m){
je vytvorený");} 6. id = i;

4. public static void main(String args[]) 7. meno = m;

{ 8. }
9. void zobraz(){System.out.println(id+" "+name); //metóda na zobrazenie
5. // volanie defaultneho konštruktora hodnôt
10. }
6. Bicykel b=new Bicykel(); 11. public static void main(String args[]){

7. } 12. Ziak z1 = new Ziak(333,"Peter"); //vytvorenie objektov a odovzdanie


hodnôt
13. Ziak z2 = new Ziak(777,"Pavol");
8. }
14. z1. zobraz(); //volanie metódy na zobrazenie hodnôt objektov
15. z2. zobraz();
16. }
17. }

You might also like