Annotary
Sort

https://www.link-elearning.com/linkdl/preview/index.php?pk=0609a340b9b0c3aaa44d6c3fe471a9f6_ita_17&IDJedinica=181705&c=jedinice

www.link-elearning.com
Nikola Sadzak Nikola Sadzak
6 months ago
Srž gotovo svakog programskog jezika predstavlja mogućnost obrade raznih brojčanih, tekstualnih ili
logičkih vrednosti. Da bismo rukovali ovakvim podacima u nekom programskom jeziku, potrebno je da poznajemo tipove koje taj jezik podržava. Tipovi podataka se razlikuju od jezika do jezika, ali su te razlike najčešće više „kozmetičke” (u nazivima), nego stvarne, i uglavnom svi jezici imaju karakteristične tipove podataka sa, eventualno, nešto drugačijim imenima. Jedan tip identifikuje set vrednosti i njihovu reprezentaciju u memoriji, kao i operacije koje su moguće nad ovim setom vrednosti.
Cancel
Šta je tip podatka i čemu služi?
Cancel
Već smo rekli da se tipovima u programu reprezentuju neki podaci, što omogućava programu da se ne „zbunjuje” kada njima treba da rukuje. Kada bismo nekoga pitali koliko ima godina, a on nam odgovorio: „Jovan”, bili bismo, verovatno, zbunjeni. Još bi gore bilo kada bi trebalo da izračunamo prosek godina, a pritom imali pomenutu informaciju kao broj godina (Jovan). U tom slučaju, jednostavna operacija izračunavanja proseka godina bila bi, praktično, neizvodljiva.
Cancel
Neki (viši) programski jezici su u stanju da samostalno tretiraju ovaj problem (na primer, ako je umesto broja prosleđen tekst, oni ga tretiraju kao broj 0 i slična rešenja), ali neki ne. Java zahteva eksplicitno identifikovane tipove, zbog čega spada u takozvane Strongly Typed programske jezike. Što znači da, ukoliko u Javi kažemo da očekujemo broj, a prosledimo tekst, program neće biti preveden.
Cancel
Vratimo se na primer sa brojem godina. Koji je zapravo tip podatka koji mi očekujemo od sagovornika kada ga pitamo za broj godina? Očigledno je da je u pitanju broj, ali ovaj broj može biti ceo ili decimalan. Sagovornik može odgovoriti 25 ili 25 i po. Ako bismo očekivali da nam kaže ceo broj, a on nam kaže decimalan, izgubili bismo deo iza zareza. Zato se može reći da je najsigurnija varijanta da pretpostavimo da će broj koji će nam sagovornik reći biti decimalan, jer tada ne postoji mogućnost da izgubimo nijednu informaciju. Pored tipa broja, veoma je bitna i veličina kojom ćemo rukovati. U ljudskom mozgu, alociranje memorije se događa dinamički, ali u računarskom programu ne. Kada jednom zauzmemo neki prostor u memoriji gde nameravamo da čuvamo neki broj, taj prostor je zauzet sve do dealokacije ili prestanka rada programa. Veoma je bitno koliki će taj prostor biti, jer to direktno utiče na raspoloživu memoriju okruženja. Ako govorimo o godinama ljudskog života, znamo da ne postoji mogućnost da neko živi duže od 150 godina. Takođe znamo da godine života ne mogu da budu predstavljene negativnom vrednošću. Dakle, za pamćenje godina ljudskog života dovoljan je najmanji decimalni broj sa pokretnim zarezom.
Cancel
Tipovi podataka u Javi
Cancel
Praktično svi programski jezici podrazumevaju generalnu podelu tipova podataka na proste (primitivne) i složene tipove.
Cancel
Takva je situacija i kod programskog jezika Java, gde postoje primitivni tipovi i referentni tipovi.
Cancel
Možda ćete čuti termine kao što su objektni ili klasni tipovi, i oni predstavljaju sinonim za termin referenti tip. Referenti, objektni ili klasni tipovi su pojmovi koji se odnose na istu stvar. Svaki podatak, bez obzira na to da li je prosti ili referentni, zauzima određeno mesto u memoriji. Prosti tipovi se smeštaju na statički deo memorije koji se naziva Stack, gde zauzimaju svoj prostor prilikom aktivacije programa. Objektni tipovi su, obično, sastavljeni od jednog ili više prostih tipova, dodajući im karakteristike i/ili funkcionalnost.
Cancel
Ovakvi tipovi se uglavnom nalaze u dinamičkom delu memorije koji se naziva Heap, dok se u statičkom delu nalazi samo adresa koja pokazuje na njihovu stvarnu vrednost u dinamičkoj memoriji. Razlog ovoga leži u različitoj veličini memorije koji primitivni i referentni tipovi mogu da zauzmu. Kao što ćete videti u daljem izlaganju, primitivni tipovi zahtevaju uvek istu količinu memorije da bi smestili vrednost podatka. Svaki primitivni tip ima definisanu maksimalnu vrednost memorije koju može zauzeti. Ali to nije slučaj i sa referentim tipovima, koji su kao što smo rekli sastavljeni od primitivnih tipova i mogu zauzeti proizvoljnu količinu memorije.
Cancel

Ako bismo napisali sledeći kod, način na koji su promenljive smeštene u memoriji bi odgovarao prikazu na slici.

1
2
3
MyObject obj = new MyObject();    // referenca na objekat
int variableNum = 32;   // vrednost
int[] anArray;  // referenca na niz

 

Cancel
Svi primitivni tipovi podataka ujedno predstavljaju i ugrađene tipove. Referentni tipovi koje ćemo obraditi su takođe ugrađeni. Ipak, referentni tip podatka može biti i korisnički definisan, što ćemo videti kasnije u modulu o objektno orijentisanom programiranju.
Cancel
Primitivni tipovi
Cancel
Srž programskog jezika Java predstavlja osam ugrađenih primitivnih tipova, koji se još nazivaju i prosti ili elementarni. Reč primitivni se ovde koristi kako bi se ukazalo na to da ovi tipovi ne predstavljaju objekte, nego obične binarne vrednosti.
Cancel
Java striktno određuje oblast korišćenja i ponašanje svakog primitivnog tipa, što je definisano u okviru javine virtualne mašine. Ova pravila se moraju dosledno poštovati kako bi portabilnost po kojoj je Java poznata bila moguća. Na primer, tip podataka int isti je bez obzira na platformu na kojoj se izvršava. Ovo omogućava programima da budu potpuno portabilni. Iako ovo striktno specificiranje maksimalne veličine primitivnih tipova može izazvati male gubitke performansi na pojednim platformama, neophodna je da bi se ostavrila portabilnost.
Cancel
Java poznaje sledeće primitivne tipove:
Cancel
U gornjoj tabeli možemo videti pregled primitivnih tipova koji postoje u jeziku Java. Takođe u tabeli je prikazan i prostor koji ovi podaci zauzimaju u memoriji, kao i opsezi vrednosti koje mogu imati. Veličine prikazane u listi su jednostavno dobijene. Ako znamo da je nekom tipu dozvoljeno da zauzme veličinu od jednog bajta, onda to znači da je to zapravo veličina od 8 bita. A 8 bita je zapravo 2 na 8, iz čega dobijamo broj 256, što je maksimalna vrednost koja može da stane u ovaj opseg.
Cancel

Prosti tipovi se deklarišu nazivom tipa kome sledi naziv promenljive:

1
int myVariable;


Ova linija deklariše promenljivu „myVariable“ tipa int.

Celobrojni tipovi

Cancel

Java definiše četiri vrste celobrojnih podataka: byte, short, int i long.

Najčešće korišćena celobrojna vrednost je int, i njena upotreba u jeziku je zaista široka. Koristi se u kontroli petlji, za indeksiranje nizova ili opštim matematičkim izrazima sa celobrojnim vrednostima. Ukoliko želimo da definišemo jednu promenljivu tipa int sa vrednošću 10, možemo da napišemo:

1
int x = 10;
Cancel
Kada je potrebna celobrojna vrednost većeg opsega od int, koristimo long.
Cancel
Pošto smo pokušali da inicijalizujemo promenljivu vrednošću koja premašuje opseg tipa podataka int, editor će nam prikazati poruku o grešci. Ukoliko bismo sada promenili tip podatka u long, editor bi i dalje prijavljivao istu grešku.
Cancel
Razlog leži u činjenici što JVM sve celobrojne vrednosti tretira kao int tip, ako se drugačije ne naglasi. Da bi se prevodiocu naglasilo da želimo da inicijalizujemo celobrojnu promenljivu produženog opsega (64bit), potrebno ja da na kraj vrednosti dodamo karakter L ili l. Preporuka je da se koristi veliko slovo L, kako bi se izbeglo moguće mešanje sa cifrom 1.
Cancel
Najmanji celobrojni tip podataka je byte. Ovaj tip podatka u Java jeziku je širine 8 bita. Ovo znači da je minimalna vrednost ovog tipa – 128, a maksimalna 127
Cancel
Korišćenje ovog tipa naročito je korisno kada ušteda memorije igra važnu ulogu.
Cancel
Celobrojni tip podatka malo većeg opsega od byte je short. Short je širine 16 bita. Slično kao i kod tipa byte, tip short se koristi u situacijama kada je bitna ušteda memorije. Retko ćete u programiranju desktop aplikacija koristiti ovaj tip podataka, ali se zato on intezivno koristi u uređajima kućne i konzumne elektronike, prilikom korišćenja Java ME edicije.
Cancel
Konkretno, promenljivu tipa int moguće je definisati kroz tri brojna sistema: decimalni, oktalni i heksadecimalni.
Cancel
Decimalna notacija se najčešće upotrebljava i ona je podrazumevana.
Cancel
Ako napišemo int x=5; prevodilac će to shvatiti kao inicijalizaciju decimalne vrednosti.
Cancel
Ukoliko hoćemo da vrednost bude oktalna, dodajemo nulu ispred broja.
Cancel
Na primer, ako bismo napisali int i=010; ne bismo dobili broj deset, kako možda očekujemo, već broj 8, jer smo nulom dali do znanja prevodiocu da ćemo vrednost predstaviti oktalno. Ako hoćemo da unesemo heksadecimalnu vrednost, postavljamo oznaku 0x ispred broja, pa će tako nakon linije int x=0xF; promenljiva x imati vrednost 15, jer je u heksadecimalnom sistemu ovaj broj predstavljen oznakom F. Sledeće linije koda prikazuju inicijalizaciju celobrojne promenljive 26 u decimalnom, oktalnom, heksadecimalnom i binarnom (prefiks 0b) formatu:
Cancel
Tipovi sa pokretnim zarezom
Cancel
Tipovi sa pokretnim zarezom predstavljaju brojeve sa prelomljenom delom. Postoje dve vrste ovog tipa, i to su: float i double.
Cancel

Ukoliko želimo da u Java programu predstavimo konstantu Pi, to možemo uraditi upotrebom tipa sa pokretnim zarezom:

double PI =3.14;

Cancel
tako se i za float preporučuje upotreba u slučajevima kada je potrebna ušteda memorije, u velikim nizovima brojeva sa pokretnim zarezom. Upotreba tipa float se nikako ne preporučuje u situacijama kada je potrebna velika preciznost, kao što je slučaj prilikom rada sa valutama.
Cancel
Float predstavlja tip podataka standardne, odnosno jednostruke preciznosti, širine 32bita. Kao što je bio slučaj i sa korišćenjem tipova short i byte,
Cancel
Tip podataka double predstavlja tip duple preciznosti, odnosno proširenog opsega i njegova širina je 64 bita. Na isti način na koji je promenljiva tipa long reprezentovana kao int kada se piše bez dodatka slova L, tako je i svaka razlomljena brojčana promenljiva podrazumevano tipa double. To možemo videti na sledećem primeru:
Cancel
Prilikom pokušaja da inicijalizujemo promenljivu tipa float editor nam prikazuje grešku. Definisali smo promenljivu tipa float, ali vrednost koju smo napisali 3434.4245 Java prevodilac tretira kao double. Ukoliko eksplicitno želimo da naglasimo kompajleru da hoćemo da inicijalizujemo promenljivu smanjene preciznosti, odnosno promenljivu tipa float, to radimo dodavanjem karaktera F na kraj brojčane vrednosti.
Cancel
Savet je, da se izbegava korišćenje promenljivih tipa float, ukoliko za to ne postoji konkretan razlog.
Cancel
Karakteri
Cancel
U Javi karakteri nisu 8-bitne veličine kao što je to slučaj sa većinom drugih programskih jezika. Za razliku od drugih jezika, Java koristi Unicode. Unicode definiše setove karaktera koji reprezentuju karaktere koji se pojavljuju u svim ljudskim jezicima. Verovatno možete pretpostaviti da razlog ovoga leži u činjenici da je jedna od ključnih karakteristika jezika Java portabilnost.
Cancel

Tip podataka char u Javi je pozitivna 16-bitna vrednost koja može imati raspon vrednosti od 0 do 65,536.

Vrednost karaktera se može dodeliti char promenljivoj korišćenjem jednostrukih navodnika kao u sledećem primeru:

Cancel
Prvom linijom deklariše se promenljiva tipa char, koja će se zvati ch, a u drugoj liniji joj se dodeljuje vrednost X.
Cancel

Ecsape karakteri

U Javi, karakter kojem prethodi kosa crta dobija posebno značenje i kompajler ga prevodi drugačije. Ova kombinacija se naziva escape sekvenca. U sledećoj tabeli dat je pregled ovih karaktera sa kratkim objašnjenjem.

Cancel
1
System.out.println("Hello\tWorld");


na izlazu bismo dobili ispisane ove dve reči, sa tabularnim razmakom između:

Hello  World

Ukoliko bismo poruku definisali na ovaj način:

1
System.out.println("HelloWorld\b\b\b\b\b");


na izlazu bi se ispisalo:

Hello

Cancel
U nastavku će biti prikazani razultati koje ove specijalne sekvence karaktera postižu u našem primeru:
Cancel
s obzirom da smo izbrisali 5 karaktera korišćenjem \b sekvence.
Cancel
Ukoliko bismo želeli da na izlazu ispišemo baš ove sekvence karaktera bukvalno, možemo to uraditi dodavanjem još jedne kose crte ispred. To bi izgledalo ovako:
Cancel

Nakon izvršavanja gornjeg koda, na izlazu će se ispisati:

Kombinacijom karaktera \n se postiže prelazak u
novi red.

Cancel
Uslovni tip – boolean
Cancel
Uslovni tip boolean reprezentuje logičke vrednosti tačno/netačno. Java definiše upotrebu logičkih vrednosti upotrebom ključih reči true/false.
Cancel

Tip boolean je u tabeli predstavljen kao jednobitni tip koji može nositi vrednost 1 ili 0. Vrednost ovog tipa najčešće se ipak reprezentuje vrednostima true ili false (tačno ili netačno) i veoma se često koristi u kodu, naročito u kontroli toka. Često, čak i nesvesno, u programiranju se rukuje ovim tipom, jer svaki izraz koji se proverava, na kraju najčešće rezultira baš vrednošću ovog tipa. Da bismo inicijalizovali promenljivu sa vrednošću ovog tipa, koristimo istu sintaksu kao i za ostale proste tipove:

boolean x = true;

odnosno

boolean x = false;

Cancel

Wrapper klase primitivnih tipova

Svaki od osam primitivnih tipova poseduje odgovarajuću klasu koja omogućava određene dodatne mogućnosti nad primitivnim tipovima, koje u protivnom ne bi bile moguće. Kako i samo ime kaže, o ovim klasama se može razmišljati kao o određenom „omotaču“ koji objedinjuje primitivne tipove i paket dodatnih funkcionalnosti nad njima.

Cancel

Ovo možemo demonstrirati na sledećem primeru, gde ćemo instancirati jednu promenljivu prostog tipa int i jedan objekat tipa Integer.

int x =5;
Integer x=5;

Cancel
U oba slučaja x će, na kraju, imati vrednost 5, iako će se, u pozadini, odvijati potpuno drugačija logika. Pre svega, prilikom inicijalizacije int-a, vrednost promenljive će biti smeštena direktno u statički deo memorije, dok će, u slučaju Integera, u statički deo biti smeštena samo adresa na objekat, koji će se, zapravo, naći u dinamičkom delu memorije (Heap-u). Za razliku od inicijalizacije putem ključne reči int, sada nam je dostupan i set funkcionalnosti koje možemo izvršiti nad ovom promenljivom jer ona, zapravo, nije prost tip već objekat.
Cancel

Na izlazu će biti ispisano:

class java.lang.Integer

Prilikom unosa oznake . nakon vrednosti x, ukoliko koristite okruženje NetBeans, pojavljuje se lista dostupnih funkcija i svojstava aktuelnog objekta.

Cancel

Svi ovi elementi dostupni su nad aktuelnim objektom.

Na primer, mogli bismo uporediti aktuelni objekat sa drugim objektom ili vrednošću:

1
2
3
4
Integer x = 5;
 
// metoda equals() poredi 2 objekta, i vraća boolean vrednost
System.out.println(x.equals(6));


Rezultat ovog koda je vrednost false ispisana na izlazu (Output prozoru NetBeansa).

Očigledno je da je Integer jedna kompleksna struktura podataka koja sadrži mnoge dodatne osobine, koje sam int nema. Mogli bismo slobodno reći da, kada bismo predstavili kompletnu vrednost tipa Integer, ne bismo dobili samo broj 5, veći i mnoštvo svojstava ovog objekta. Sa druge strane, int ispod sebe ima samo vrednost 5 i to je jedina reprezentacija koju ovaj tip nosi.

Cancel
Objekte za celobrojne vrednosti je preporučljivo koristiti samo onda kada za to ima stvarno potrebe. Ako je potrebno izvršiti određena računanja sa celobrojnim vrednostima, uvek treba koristiti proste tipove, jer pružaju neuporedivo brže izvršavanje
Cancel

Konverzija prostih tipova

Kada napravimo promenljivu nekog tipa, to ne znači da se se zauvek ostali u tom tipu. Naprotiv, vrlo jednostavno možemo da prebacimo promenljivu iz jednog tipa u drugi. Naravno, samo pod uslovom da postoje uslovi za to prebacivanje. Na primer, ako imamo jednu vrednost tipa tekst (na primer „moj tekst”), ovakvu vrednost nećemo uspeti da prebacimo u broj, jer u njoj nema ničega što može da reprezentuje brojnu vrednost. Decimalni broj 3.14 bismo, sa druge strane, vrlo jednostavno prebacili u celobrojnu vrednost, tako što bismo zaokružili deo iza zareza na željenu vrednost. Još lakše bismo prebacili neki ceo broj u decimalni, dodavanjem decimalnog zareza i nule iza njega. Svi prosti tipovi u objektnoj reprezentaciji (wrapper klase) imaju i metode za konverziju.

U suštini, mogu se definisati dve vrste konverzije koje mogu da se dogode između primitivnih tipova. Jedna se događa u situaciji kada pokušavamo da konvertujemo veći tip u manji, a druga kada pokušavamo da konvertujemo manji tip u veći. Pod veličinom ovde podrazumevamo količinu memorije koju jedan podatak zauzima.

Cancel

Implicitna konverzija

Implicitna konverzija je konverzija koja se obavlja automatski od stane JVM-e, i događa se u slučajevima kada pokušavamo da konvertujemo podatak manje veličine u veći. U ovom slučaju dolazi do proširivanja manjeg podatka, i konverzija se obavlja bez bilo kakvog gubitka informacija. Pogledajmo ovo na primeru.

1
2
3
int x = 10;     // 4 bajta
double y = x;   // 8 bajta (implicitna konverzija: int->double)
System.out.println(y);


U gornjem primeru deklarisali smo i inicijalizovali celobrojnu promenljivu tipa int sa nazivom x. Njena vrednost je 10. Zatim smo izvršili konverziju ove promenljive u promenljivu tipa double. Konverziju implicitno obavlja JVM-a, i na izlazu se ispisuje:

10.0

Cancel

Eksplicitna konverzija

Ukoliko bismo hteli na izvršimo konverziju većeg tipa u manji, ne bismo mogli da se oslonimo da će JVM-a obaviti posao automatski za nas. Sam čin konvertovanja podatka koji okupira više memorije u tip koji zauzima manje memorije je problematičan. U slučaju implicitne konverzije, situacija je jednostavna. Manjem tipu se dodaju nepostojeći bajtovi i ne dolazi do gubitka informacija. Pošto je sada situacija obrnuta, mora se očekivati neki gubitak informacija. Takođe, mora se eksplicitno navesti da želimo da izvršimo konverziju. Ukoliko napišemo:

1
2
double x = 10.5;
int y = x;  // greška! dolazi do gubitka informacija


editor će prijaviti grešku:

 

Slika 7.6 Eksplicitna konverzija


Da bismo izvršili ovakvu konverziju, moramo eksplicitno to naglasiti. Zato treba da napišemo:

1
2
3
double x = 10.5;
int y = (int) x;    // mora se eksplicitno cast-ovati double u int
System.out.println(y);


Navođenjem tipa u koji želimo da izvršimo konverziju u zagradama isped naziva promenljive vršimo eksplicitnu konverziju. Ovom prilikom će konverzija „proći” i na izlazu ćemo dobiti:

10

Primećujemo da prilikom ovakve konverzije dolazi do gubitka informacija, odnosno preciznosti. Broj sa pokretnim zarezom biva zaokružen na celobrojni deo, tako što se deo iza pokretnog zareza zanemaruje.

Jedini tip čije se promenljive ne mogu dodeljivati promenljivima drugog tipa je tip boolean. Konverziju tipa boolean nije moguće izvršiti eksplicitno niti implicitno. Jedino što je moguće je dodeljivati jednoj boolean promenljivoj vrednost druge.

Cancel
Ovde se priča o konverzijama tipova ne završava, jer je moguće vršiti konverziju i između prostih i složenih (objektnih) tipova. O ovakvim konverzijama biće više reči kada ovladamo principima OOP u Javi.
Cancel
String – specijalni tip
Cancel
U programskom jeziku Java za rukovanje tekstualnim vrednostima koristi se tip String. Mnogo je zgodnije rukovati kompletnim rečima ili rečenicama nego karakterima, pa iz tog razloga ovaj tip podatka postoji u gotovo svakom programskom jeziku. Za tip String kažemo i da je specijalni tip, pošto ima osobine prostog tipa, iako je zapravo objektni tip, što možemo primetiti i po tome što je napisan velikim početnim slovom. Ovo je jedini objektni tip koji se može kreirati kao i svaki drugi prosti tip. Ipak, ovaj tip zbog svoje objektne osobenosti poseduje pregršt metoda i svojstava koji olakšavaju rad sa vrednostima ovog tipa. O
Cancel
Za sada je dovoljno znati da se promenljiva tekstualne vrednosti može deklarisati na isti način kao i promenljiva prostih tipova, korišćenjem operatora "=":
Cancel

String myWord = "Hi!";

Na ovaj način deklarisali smo promenljivu tipa String i dodelili joj vrednost Hi!.

Već smo se upoznali sa načinom prikaza nekog teksta na izlazu:

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

Cancel

Objekti

Najkompleksniji tip u svim objektno orijentisanim programskim jezicima je, svakako, tip objekat.

Cancel
Objekat je nešto što, iako može biti strukturalno, veoma jednostavno, takođe može biti i izuzetno komplikovano i zavisi od mašte, odnosno potreba programera/programa.
Cancel
Priča o objektima i objektnom programiranju je „beskrajna” i svakako prevelika za ovaj trenutak. Međutim, objektni model je simbol Jave i, hteli - ne hteli, ne postoji šansa da ovaj jezik naučimo bez njegovog odličnog poznavanja.
Cancel

Već smo videli da se primitivni tipovi podataka sastoje isključivo od vrednosti koja im je dodeljena. Na primer, ako napišemo:

int x =10; // vrednost tj. stanje

Vrednost 10 je sve što ova promenljiva x sadrži. Za ovu vrednost se može reći da predstavlja neko stanje. U Javi i drugim objektnim jezicima je moguće definisati promenljive koje u svom sastavu sadrže mnogo više od samo jedne brojčane ili tekstualne vrednosti. Pored mnoštva vrednosti koje ovakve promenljve mogu sadržati, one mogu sadržati i određena ponašanja. Na ovaj način možemo reći da je objekat značajno složenija pojava od primitivnih tipova sa kojima smo se upoznali.

Cancel
Za sada je potrebno na najbolji način savladati sve primitivne tipove podataka i operacije nad njima, a u poglavlju Objektno orijentisano programiranje u Javi, biće detaljno objašnjen pojam objekta.
Cancel

Nepostojeći tip – null

U Javi postoji oznaka null, koja prestavlja nedostatak vrednosti. Ona predstavlja referencu koja ne pokazuje ni na koji objekat. Null predstavlja neku vrstu pandana vrednosti „0“, koja se može dodeliti prostim tipovima, s tim što se null može koristiti samo nad objektima.

O stack-u i heap-u već je bilo reči na početku lekcije i znamo da se referentni tipovi smeštaju na heap, dok se na stacku nalazi samo pokazivač, odnosno memorijska lokacija objekta. Kada neki objekat ima vrednost null (odnosno nema vrednost), to znači da kreirana objektna promenljiva ne pokazuje ni na jednu memorijsku lokaciju.

Cancel
Pošto je moguće razdvojiti kreiranje i instanciranje jednog objekta, kao što ćemo to videti u narednoj lekciji o promenljivima, u periodu između ove dve operacije vrednost deklarisane promenljive biće null.
Cancel
Pošto je nepostojeća vrednost ili vrednost null svojstvena objektima, o ovome će biti više reči u modulu o OOP u Javi.
Cancel
Show all 73 highlights
Loading...