|
1
|
- Róbert Novotný
- robert.novotny@upjs.sk
- 5. 10. 2006
|
|
2
|
- alias ,,Bratia == a equals() zasahujú"
- jestvujú dva druhy dátových typov: primitívy a objekty
- primitívy: int, boolean, float, double,...
- dátové typy začínajúce malým písmenom
- objekty: String, Pes,...
- začínajúce veľkým písmenom
|
|
3
|
- primitívy: presne ako v Pascale
- premenná je chlievik v pamäti, ktorý má
- názov (i)
- dátový typ (int)
- veľkosť podľa dátového typu (int: 32 bitov)
- príklad: int i = 52. V binárnom kóde: 110100
|
|
4
|
- primitívy: presne ako v Pascale
- premenná je chlievik v pamäti, ktorý má
- názov (i)
- dátový typ (int)
- veľkosť (rozsah) podľa dátového typu (int: 32 bitov)
|
|
5
|
- porovnanie primitívov: výhradne cez ==
- porovnajú sa chlieviky bit po bite.
- 110100 (50) == 110100 (50)
- 110101 (51) != 110100 (50)
|
|
6
|
- Objekt je premenná typu špecifikovaného triedou objektu.
- premenná je chlievik v pamäti, ktorý má
- názov (i)
- dátový typ (int)
- veľkosť podľa dátového typu
- Veľkosť?
- aký veľký je String? A Pes? A Veľryba?
|
|
7
|
- nevieme, aký veľký je objekt
- objekty nemôžeme natlačiť do chlievika
- čo keď sa nezmestia?
- jak dostat velrybu do pohárku
- nemôžeme mať nekonečne veľký chlievik
|
|
8
|
- Urob si haldu v pamäti počítača, v halde urob priehrady a zvnútra i
zvonka ich vymaž smolou! A postav ju takto: tristo MB bude jej dĺžka,
päťdesiat MB jej šírka a tridsať MB jej výška.
- Do korába vojdeš ty i tvoji synovia, tvoja žena aj ženy tvojich synov s
tebou.
- Zo všetkých vtákov podľa svojho druhu, z dobytka podľa svojho druhu a z
plazov podľa svojho druhu vojdú po dvoch do korába s tebou, aby mohli
žiť.
- – IT Genesis
|
|
9
|
- halda (heap) je priestor v pamäti určený pre objekty
- nemýliť si s heapsortom (triedenie haldovaním)!
- je spravovaný automaticky Javou
- prostý programátor nevie o existencii haldy
- na halde sa dejú kadejaké zverstvá
- automatické uvoľnovanie pamäte (Garbage Collection)
- o tom však neskôr
|
|
10
|
- Pes dunčo = new Pes()
- Pes dunčo;
- vytvorí sa nové premenná dunčo typu Pes
- new Pes()
- na halde sa vytvorí dostatok pamäte pre novú inštanciu
|
|
11
|
- Pes dunčo = new Pes()
- premenná dunčo je nasmerovaná na inštanciu psa na halde. Bude obsahovať
adresu inštancie na halde
- ,,tretí chlievik zhora, piaty sprava, vedľa veľryby"
|
|
12
|
- premenná dunčo obsahovuje adresu inštancie na halde
- to je presne idea smerníkov
- našťastie:
- smerníky sú v pozadí
- užívateľ ich nevidí
- žiadne ^. ako v Pascale
|
|
13
|
- premenná Pes obsahuje ,,diaľkové ovládanie" inštancie na halde
|
|
14
|
- Ak pohárik int má veľkosť 32 bitov, akú veľkosť má pohárik typu Pes?
- Nevedno, ale ani nás to netrápi.
- JDK od Sunu: 64 bitov
- Java od Janka Hraška:
- 64 bitov na obed
- 32 bitov v noci
|
|
15
|
- Ak nadeklarujem premennú a nepriradím jej nič, koho riadi diaľkové
ovládanie?
- Pes aibo;
- Premenná, ktorej nebola priradená žiadna inštancia ukazuje na null.
- null je analógia nil z Pascalu: smerník, ktorý ukazuje nikam.
- Ak premenná ukazuje na null, mám diaľkové ovládanie, ale nemám k nemu
televízor.
|
|
16
|
- Čo spraví nasledovný kód?
- Pes dunčo = new Pes();
- dunčo.rasa = "čuvač";
- dunčo.vek = 25;
- System.out.println(dunčo.vek);
- Pes aibo = dunčo;
- aibo = 35;
- System.out.println(aibo.vek);
- System.out.println(dunčo.vek);
|
|
17
|
|
|
18
|
|
|
19
|
|
|
20
|
|
|
21
|
|
|
22
|
|