Pitanje za programere a i za ljubitelje logike i igara
Moderator: Benq
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#1 Pitanje za programere a i za ljubitelje logike i igara
Da li je u simulacijama zrno ono, koje odlucuje o tome, dali je pogodilo metu ili je meta ona, koja odredjuje, da li je pogodjena zrnom?
- diablobih
- Posts: 8252
- Joined: 28/12/2015 02:17
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#3 Re: Pitanje za programere a i za ljubitelje logike i igara
Sta ti daje tako misliti?diablobih wrote:Oboje.
Smatras li to (nepotrebnom) redundancijom (istih) podataka?
-
- Posts: 1505
- Joined: 26/12/2013 22:36
#4 Re: Pitanje za programere a i za ljubitelje logike i igara
pozdrav.
zamolio bi nekog programera da odgovori.
procitao sam tekstova o kodovima i knjigu za djecu o programiranju ali ne kontam- kako se to radi tj. kodove dali moras znati napamet ili mozes listati po teci trazeci kodove i upisivati ih ....koliko ima kodova jedan prog. jezik otprilike????? dali kod unosis iskljucivo preko tastature ili ima instaliran program kao pomoc isl.?
dali programer treba imati smisla za matematiku ili fiziku ili mehaniku???? znam da treba imat smisla za logicno zakljucivanje.
fala lijepo.
zamolio bi nekog programera da odgovori.
procitao sam tekstova o kodovima i knjigu za djecu o programiranju ali ne kontam- kako se to radi tj. kodove dali moras znati napamet ili mozes listati po teci trazeci kodove i upisivati ih ....koliko ima kodova jedan prog. jezik otprilike????? dali kod unosis iskljucivo preko tastature ili ima instaliran program kao pomoc isl.?
dali programer treba imati smisla za matematiku ili fiziku ili mehaniku???? znam da treba imat smisla za logicno zakljucivanje.
fala lijepo.
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#5 Re: Pitanje za programere a i za ljubitelje logike i igara
Programiranje je (1)umjetnost prepoznavanja podatkovnih (2)obrazaca i njih strukturiranja u (3)informacije, koje imaju neku pragmaticku vrijednost.sportman1 wrote:pozdrav.
zamolio bi nekog programera da odgovori.
procitao sam tekstova o kodovima i knjigu za djecu o programiranju ali ne kontam- kako se to radi tj. kodove dali moras znati napamet ili mozes listati po teci trazeci kodove i upisivati ih ....koliko ima kodova jedan prog. jezik otprilike????? dali kod unosis iskljucivo preko tastature ili ima instaliran program kao pomoc isl.?
dali programer treba imati smisla za matematiku ili fiziku ili mehaniku???? znam da treba imat smisla za logicno zakljucivanje.
fala lijepo.
-
- Posts: 1371
- Joined: 11/12/2012 16:14
#6 Re: Pitanje za programere a i za ljubitelje logike i igara
Ne izgleda programiranje bas tako. Programski jezici sluze da objasnis racunaru sta treba da radi.sportman1 wrote:pozdrav.
zamolio bi nekog programera da odgovori.
procitao sam tekstova o kodovima i knjigu za djecu o programiranju ali ne kontam- kako se to radi tj. kodove dali moras znati napamet ili mozes listati po teci trazeci kodove i upisivati ih ....koliko ima kodova jedan prog. jezik otprilike????? dali kod unosis iskljucivo preko tastature ili ima instaliran program kao pomoc isl.?
dali programer treba imati smisla za matematiku ili fiziku ili mehaniku???? znam da treba imat smisla za logicno zakljucivanje.
fala lijepo.
To otprilike izgleda ovako. Za svrhu objasnjenja, nas racunar ce se zvati Mirsad, a imacemo i izmisljeni programski jezik. Pretpostavimo da je stranica klix programirana u tom jeziku. Onda bi pocetak programa klixa izgledao otprilike:
Mirsade, provjeri da li je trenutni posjetilac ulogovan.
- Ako je ulogovan, prikazi njegove podatke u gornjem desnom cosku i prikazi mu neku dugmad (za log out na primjer)
- Ako nije ulogovan, nemoj prikazati te podatke
Mirsade, reci mi koje kategorije clanaka postoje.
(Sad Mirsad kaze: "Vijesti", "Svijet", "Crna Hronika", "Magazin", "Zdravlje", "Sport")
Mirsade, otidji u arhivu clanaka i za svaku kategoriju, koju si mi rekao da postoji, donesi po 10 zadnjih naslova.
Kad doneses te clanke, prikazi ih na slijedeci nacin:
- Prikazi na stranici kategorije jednu iznad druge
- Unutar svake kategorije prikazi njene naslove koje si maloprije donio iz arhive, skupa sa njihovim slikama
- Ako korisnik klikne na sliku ili naslov prikazi mu novu stranicu i na njoj ispisi sadrzaj clanka iz arhive.
itd.
Razlika izmedju ljudskih i programskih jezika je u tome sto ce ljudi razumjeti cak i ako izmjenis malo rijeci ili recenicu, tj. ako govoris nepravilno.
Programski jezici nisu takvi i oni imaju tacno odredjena pravila, ako je neko pravilo prekrseno racunar te nece razumjeti sta govoris. Oni obicno imaju manje rijeci nego ljudski jezici (ali ima programskih jezika u koje mozes dodavati svoje rijeci).
Na kraju ima jedan program koji to sto ti napises u programskom jeziku prevede u niz signala (odnosno jedinica i nula koje racunar moze da razumije).
To ti je onako, otprilike.
-
- Posts: 1371
- Joined: 11/12/2012 16:14
#7 Re: Pitanje za programere a i za ljubitelje logike i igara
Zavisi od konteksta.PeeJay wrote:Sta ti daje tako misliti?diablobih wrote:Oboje.
Smatras li to (nepotrebnom) redundancijom (istih) podataka?
Ako oba objekta sami reaguju na svoje stanje (meta se probije kad je pogodi metak, a metak se deformise prilikom udara u metu) i nikome ne govore o njemu (kaze meta: sta je briga metka je li pogodio mene, ja sam pogodjena), onda nije redundantno.
Ako su metak i meta transparentni objekti koji eventualno obavjestavaju nekoga o svom stanju, onda je mozda redundancija.
Dalje, ako ima vise metaka i meta, unutar nekog vremenskog domena, te svaki za sebe prate da li su udarili u nesto, lako je onda zakljuciti kasnije koji je metak pogodio koju metu, dok to ne bi bilo tako jednostavno da samo jedan objekat detektuje sudar.
Ako nas ne zanima koji metak je pogodio koju metu, onda taj podatak stavljamo ondje gdje nam je bitan. Drugim rijecima, ako nas ne zanima zrno/metak i njegova sudbina, dovoljno je da znamo da je meta pogodjena, jer je ona u fokusu nase paznje, naspram cemu imamo situaciju gdje nas zanima da li je metak pogodio nesto, pri cemu nije bitno da li je pogodjena meta ili nesto deseto.
Ova zadnja dva scenarija podrazumijevaju da ima drugih vrsta objekata koji imaju mogucnost da gadjaju ili da budu pogodjeni. To jeste, osim meta, imaju i zidovi i tlo koji mogu biti pogodjeni, kao sto i umjesto zrna postoje i strijele te kamenje.
Ako je to zrno samo model nekog slozenijeg projektila, npr. smart rakete, onda nam definitivno treba taj podatak da zrno zna da je pogodilo nesto, sta je to nesto i kada se to desilo.
U simulacijama najcesce (uvijek?) baratamo modelima stvari. Prema tome zrno moze biti model zrna, ali i model bilo kojeg projektila. Isto tako, meta moze biti samo apstrakcija svih staticnih predmeta koji mogu biti pogodjeni.
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#8 Re: Pitanje za programere a i za ljubitelje logike i igara
Kad me moja kci pitala o tom, cime se bavim, sam joj rekao, da saceka do vecere, pa cu joj objasnit u miru. I tako sam djecu uvece posjeo za sto i stao sredi kuhinje, te jim objasnio, da cu uciniti tacno ono, sto mi narede i nista drugo... a cilj je, da svako dobije na sto pred sebe nesto, da pojede. Stvar se pretvorila u veoma zabavan dozivljaj, a djeca su kroz igru shvatila, sta znaci preciznost neredbi i dobila neku predstavu o tome, sto tata radi. Kao ideja, koju mozete pokusati i sami izvesti u krugu domacih ili prijatelja.KIseljak12 wrote:Ne izgleda programiranje bas tako. Programski jezici sluze da objasnis racunaru sta treba da radi.sportman1 wrote:pozdrav.
zamolio bi nekog programera da odgovori.
procitao sam tekstova o kodovima i knjigu za djecu o programiranju ali ne kontam- kako se to radi tj. kodove dali moras znati napamet ili mozes listati po teci trazeci kodove i upisivati ih ....koliko ima kodova jedan prog. jezik otprilike????? dali kod unosis iskljucivo preko tastature ili ima instaliran program kao pomoc isl.?
dali programer treba imati smisla za matematiku ili fiziku ili mehaniku???? znam da treba imat smisla za logicno zakljucivanje.
fala lijepo.
To otprilike izgleda ovako. Za svrhu objasnjenja, nas racunar ce se zvati Mirsad, a imacemo i izmisljeni programski jezik. Pretpostavimo da je stranica klix programirana u tom jeziku. Onda bi pocetak programa klixa izgledao otprilike:
Mirsade, provjeri da li je trenutni posjetilac ulogovan.
- Ako je ulogovan, prikazi njegove podatke u gornjem desnom cosku i prikazi mu neku dugmad (za log out na primjer)
- Ako nije ulogovan, nemoj prikazati te podatke
Mirsade, reci mi koje kategorije clanaka postoje.
(Sad Mirsad kaze: "Vijesti", "Svijet", "Crna Hronika", "Magazin", "Zdravlje", "Sport")
Mirsade, otidji u arhivu clanaka i za svaku kategoriju, koju si mi rekao da postoji, donesi po 10 zadnjih naslova.
Kad doneses te clanke, prikazi ih na slijedeci nacin:
- Prikazi na stranici kategorije jednu iznad druge
- Unutar svake kategorije prikazi njene naslove koje si maloprije donio iz arhive, skupa sa njihovim slikama
- Ako korisnik klikne na sliku ili naslov prikazi mu novu stranicu i na njoj ispisi sadrzaj clanka iz arhive.
itd.
Razlika izmedju ljudskih i programskih jezika je u tome sto ce ljudi razumjeti cak i ako izmjenis malo rijeci ili recenicu, tj. ako govoris nepravilno.
Programski jezici nisu takvi i oni imaju tacno odredjena pravila, ako je neko pravilo prekrseno racunar te nece razumjeti sta govoris. Oni obicno imaju manje rijeci nego ljudski jezici (ali ima programskih jezika u koje mozes dodavati svoje rijeci).
Na kraju ima jedan program koji to sto ti napises u programskom jeziku prevede u niz signala (odnosno jedinica i nula koje racunar moze da razumije).
To ti je onako, otprilike.
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#9 Re: Pitanje za programere a i za ljubitelje logike i igara
Samo kao dopuna k izvornom pitanju: Da. Imao sam ideju realne simulacije. Znaci zrno moze da pogodi i bilo koji drugi predmet na putanji (npr. pomenuti zid). A i metu (u smislo gadjanog objekta) moze da pogodi bilo sta drugo (okrusak pomenutog zida npr.)KIseljak12 wrote:Zavisi od konteksta.PeeJay wrote:Sta ti daje tako misliti?diablobih wrote:Oboje.
Smatras li to (nepotrebnom) redundancijom (istih) podataka?
Ako oba objekta sami reaguju na svoje stanje (meta se probije kad je pogodi metak, a metak se deformise prilikom udara u metu) i nikome ne govore o njemu (kaze meta: sta je briga metka je li pogodio mene, ja sam pogodjena), onda nije redundantno.
Ako su metak i meta transparentni objekti koji eventualno obavjestavaju nekoga o svom stanju, onda je mozda redundancija.
Dalje, ako ima vise metaka i meta, unutar nekog vremenskog domena, te svaki za sebe prate da li su udarili u nesto, lako je onda zakljuciti kasnije koji je metak pogodio koju metu, dok to ne bi bilo tako jednostavno da samo jedan objekat detektuje sudar.
Ako nas ne zanima koji metak je pogodio koju metu, onda taj podatak stavljamo ondje gdje nam je bitan. Drugim rijecima, ako nas ne zanima zrno/metak i njegova sudbina, dovoljno je da znamo da je meta pogodjena, jer je ona u fokusu nase paznje, naspram cemu imamo situaciju gdje nas zanima da li je metak pogodio nesto, pri cemu nije bitno da li je pogodjena meta ili nesto deseto.
Ova zadnja dva scenarija podrazumijevaju da ima drugih vrsta objekata koji imaju mogucnost da gadjaju ili da budu pogodjeni. To jeste, osim meta, imaju i zidovi i tlo koji mogu biti pogodjeni, kao sto i umjesto zrna postoje i strijele te kamenje.
Ako je to zrno samo model nekog slozenijeg projektila, npr. smart rakete, onda nam definitivno treba taj podatak da zrno zna da je pogodilo nesto, sta je to nesto i kada se to desilo.
U simulacijama najcesce (uvijek?) baratamo modelima stvari. Prema tome zrno moze biti model zrna, ali i model bilo kojeg projektila. Isto tako, meta moze biti samo apstrakcija svih staticnih predmeta koji mogu biti pogodjeni.
-
- Posts: 1505
- Joined: 26/12/2013 22:36
#10 Re: Pitanje za programere a i za ljubitelje logike i igara
fala za odgovore.
- diablobih
- Posts: 8252
- Joined: 28/12/2015 02:17
#11 Re: Pitanje za programere a i za ljubitelje logike i igara
Ne smatram, jer smanjuje mogucnost desavanja buga.PeeJay wrote:Sta ti daje tako misliti?diablobih wrote:Oboje.
Smatras li to (nepotrebnom) redundancijom (istih) podataka?
- desperate housewife
- Posts: 476
- Joined: 25/09/2010 13:47
#12 Re: Pitanje za programere a i za ljubitelje logike i igara
da li ima neko ko se bavi programiranjem u Javi?
-
- Posts: 1353
- Joined: 01/07/2016 20:22
#13 Re: Pitanje za programere a i za ljubitelje logike i igara
desperate housewife wrote:da li ima neko ko se bavi programiranjem u Javi?
Code: Select all
public class Da {
public static void main(String[] args) {
System.out.println("Ima, Zasto ti treba?");
}
}
- desperate housewife
- Posts: 476
- Joined: 25/09/2010 13:47
#14 Re: Pitanje za programere a i za ljubitelje logike i igara
Cookie85 wrote:desperate housewife wrote:da li ima neko ko se bavi programiranjem u Javi?Code: Select all
public class Da { public static void main(String[] args) { System.out.println("Ima, Zasto ti treba?"); } }
Mozes li u jednoj recenici reci zasto bismo koristili konstruktor umjesto najobicnijeg proglasavanja varijabli, i dodjeljivanja vrijednosti*? Sta je prednost konstruktorima, ali reci mi jednostavnim rijecima ako moze bez gomile strucnih izraza koje ne razumijem? Hvala
-
- Posts: 1371
- Joined: 11/12/2012 16:14
#15 Re: Pitanje za programere a i za ljubitelje logike i igara
Jeste da nije meni upuceno pitanje. Konkretno u Javi, ako sve propertye deklarisemo kao final, te ih setujemo jedino u konstruktorima, bez implementacije set metoda, onda smo na pola puta da imamo definiciju tipa koji je immutable. Da bi bio immutable u potpunosti, moramo onemoguciti override metoda, sto mozemo postici na par nacina, jedan od njih bi bio da samu klasu deklarisemo kao final.desperate housewife wrote:Cookie85 wrote:desperate housewife wrote:da li ima neko ko se bavi programiranjem u Javi?Code: Select all
public class Da { public static void main(String[] args) { System.out.println("Ima, Zasto ti treba?"); } }
Mozes li u jednoj recenici reci zasto bismo koristili konstruktor umjesto najobicnijeg proglasavanja varijabli, i dodjeljivanja vrijednosti*? Sta je prednost konstruktorima, ali reci mi jednostavnim rijecima ako moze bez gomile strucnih izraza koje ne razumijem? Hvala
Immutable tipovi su oni koji ne mogu mijenjati stanje, mozes samo instancirati nove objekte koji imaju nesto promijenjeno u odnosu na prvobitni. Prednost immutable tipova je prvenstveno u konkurentnom programiranju (multithreading npr.) jer se garantuje istovjetnost objekta u svim threadovima.
- desperate housewife
- Posts: 476
- Joined: 25/09/2010 13:47
#16 Re: Pitanje za programere a i za ljubitelje logike i igara
hvala što si odgovorio. Al meni idalje ništa nije jasno...Cookie85 wrote:Jeste da nije meni upuceno pitanje. Konkretno u Javi, ako sve propertye deklarisemo kao final, te ih setujemo jedino u konstruktorima, bez implementacije set metoda, onda smo na pola puta da imamo definiciju tipa koji je immutable. Da bi bio immutable u potpunosti, moramo onemoguciti override metoda, sto mozemo postici na par nacina, jedan od njih bi bio da samu klasu deklarisemo kao final.desperate housewife wrote:
Mozes li u jednoj recenici reci zasto bismo koristili konstruktor umjesto najobicnijeg proglasavanja varijabli, i dodjeljivanja vrijednosti*? Sta je prednost konstruktorima, ali reci mi jednostavnim rijecima ako moze bez gomile strucnih izraza koje ne razumijem? Hvala
Immutable tipovi su oni koji ne mogu mijenjati stanje, mozes samo instancirati nove objekte koji imaju nesto promijenjeno u odnosu na prvobitni. Prednost immutable tipova je prvenstveno u konkurentnom programiranju (multithreading npr.) jer se garantuje istovjetnost objekta u svim threadovima.
-
- Posts: 1296
- Joined: 24/04/2016 13:22
#17 Re: Pitanje za programere a i za ljubitelje logike i igara
Mislim da ti je pitanje pogresno. Ti ne koristis konstruktor, nego klasu/objekat. Konstruktor se poziva prilikom kreiranja objekta i sluzi kao njegova inicializacija. Googlaj sta je klasa za strucniji opis. Naivno, klasa je skup varijabli koji opisju nesto.desperate housewife wrote:Cookie85 wrote:desperate housewife wrote:da li ima neko ko se bavi programiranjem u Javi?Code: Select all
public class Da { public static void main(String[] args) { System.out.println("Ima, Zasto ti treba?"); } }
Mozes li u jednoj recenici reci zasto bismo koristili konstruktor umjesto najobicnijeg proglasavanja varijabli, i dodjeljivanja vrijednosti*? Sta je prednost konstruktorima, ali reci mi jednostavnim rijecima ako moze bez gomile strucnih izraza koje ne razumijem? Hvala
-
- Posts: 1353
- Joined: 01/07/2016 20:22
#18 Re: Pitanje za programere a i za ljubitelje logike i igara
desperate housewife wrote:Cookie85 wrote:desperate housewife wrote:da li ima neko ko se bavi programiranjem u Javi?Code: Select all
public class Da { public static void main(String[] args) { System.out.println("Ima, Zasto ti treba?"); } }
Mozes li u jednoj recenici reci zasto bismo koristili konstruktor umjesto najobicnijeg proglasavanja varijabli, i dodjeljivanja vrijednosti*? Sta je prednost konstruktorima, ali reci mi jednostavnim rijecima ako moze bez gomile strucnih izraza koje ne razumijem? Hvala
Svaka klasa koja nije static ima konstruktor. Ako ga programer nije sam napisao, kompajler kreira "prazni" public konstruktor bez argumenata.
Konstruktor se izvrsava prilikom kreiranja instance klase (new) i onaj ko pokusava kreirati instancu mora imati pristup konstruktoru.
Tri najvaznje primjene konstruktora su:
- Postavljanje vrijednosti varijabli prilikom instanciranja klase - vrijednosti proslijedjene kao argument konstruktoru
- Izvrsavanje dijela koda koji mora biti izvrsen prilikom instanciranja klase - tipa otvaranje file za pisanje ukoliko se radi o klasi koja je zaduzena za zapis u file
- Regulacija tko moze instancirati klasu - npr., mozes imati private konstruktor i static metodu koja poziva konstruktor samo ako vec ne postoji instanca te klase, a ako vec postoji vraca postojecu instancu, tako da moze biti samo jedna instanca kreirana (singleton) ili mozes imati protected konstruktor tako da ne mozes instancirati tu klasu, vec samo one koje je nasljedjuju
Primjer:
Code: Select all
public class Vrijeme {
private int sati;
private int minute;
private int sekunde;
//Konstruktor
public Vrijeme(int sati, int minute, int sekunde) {
this.sati = sati;
this.minute = minute;
this.sekunde = sekunde;
}
....getteri i setteri ...
}
public class Main (){
public static void main(String[] args){
Vrijeme vrijeme = new Vrijeme (neke vrijednosti....); //init klase
int sati = vrijeme.getSati(); //uporaba klase
.....
}
}
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#19 Re: Pitanje za programere a i za ljubitelje logike i igara
Hm... nekako mi se ne svidja. Rekao bih cak, da odrzavanje (i sinhronizacija) pojednakih podataka u dvije instance prije uvecava mogucnost pogreske, nego smanjuje.diablobih wrote:Ne smatram, jer smanjuje mogucnost desavanja buga.PeeJay wrote:Sta ti daje tako misliti?diablobih wrote:Oboje.
Smatras li to (nepotrebnom) redundancijom (istih) podataka?
- PeeJay
- Posts: 204
- Joined: 05/02/2018 21:52
- Location: HH
- Contact:
#20 Re: Pitanje za programere a i za ljubitelje logike i igara
Kao prvo: konstruktor je metoda, koja podesava (inicialno) stanje objekta, dok sve ostale metode u stvari opredeljuju ponasanje objekta. Sto se tice podesavanja variable pomocu konstruktora ili podesavanja variable primitivnog tipa, stvar je sledeca:desperate housewife wrote:Cookie85 wrote:desperate housewife wrote:da li ima neko ko se bavi programiranjem u Javi?Code: Select all
public class Da { public static void main(String[] args) { System.out.println("Ima, Zasto ti treba?"); } }
Mozes li u jednoj recenici reci zasto bismo koristili konstruktor umjesto najobicnijeg proglasavanja varijabli, i dodjeljivanja vrijednosti*? Sta je prednost konstruktorima, ali reci mi jednostavnim rijecima ako moze bez gomile strucnih izraza koje ne razumijem? Hvala
- primitivni tipovi imaju unaprijed poznatu velicinu, npr. int 32 bita, itd. zbog toga konstruktor nije potreban, jer deklarisanjem variable rezervise se potrebna memorija i za podatak, koji se u njoj nalazi.
- kompleksni tipovi prilikom deklaracije variable rezervisu uvjek memorije dovoljno taman za pohranivanje adrese, na kojoj ce se objekt nalaziti (npr. 32 bit-a). Tek prilikom prozivanja konstruktora (operaterom new) nasa variabla se popunjava adresom, gje se nas objekat u memoriji nalazi (referencija na objekat) a nas objekat zauzima memoriju u svoj svojoj velicini.
Prednost upotrebe konstruktora je znaci u tom, sto memorija nije zauzeta sve do konstruiranja objekta u memoriji. To ujedno i znaci, da je objektno programiranje uvijek za nijansu sporije od proceduralnog, jer manipulisanje memorijom zahtjeva neko vrijeme.
- hidr4
- Posts: 91
- Joined: 19/07/2016 14:43
- Location: Saturn
#21 Re: Pitanje za programere a i za ljubitelje logike i igara
Nije baš svugdje igranje sa memorijom sporije, C++ pointers for the win haha.
- desperate housewife
- Posts: 476
- Joined: 25/09/2010 13:47
#22 Re: Pitanje za programere a i za ljubitelje logike i igara
Ima smisla. Zahvaljujem na detaljnom i čitljivom odgovoru.PeeJay wrote:
Kao prvo: konstruktor je metoda, koja podesava (inicialno) stanje objekta, dok sve ostale metode u stvari opredeljuju ponasanje objekta. Sto se tice podesavanja variable pomocu konstruktora ili podesavanja variable primitivnog tipa, stvar je sledeca:
- primitivni tipovi imaju unaprijed poznatu velicinu, npr. int 32 bita, itd. zbog toga konstruktor nije potreban, jer deklarisanjem variable rezervise se potrebna memorija i za podatak, koji se u njoj nalazi.
- kompleksni tipovi prilikom deklaracije variable rezervisu uvjek memorije dovoljno taman za pohranivanje adrese, na kojoj ce se objekt nalaziti (npr. 32 bit-a). Tek prilikom prozivanja konstruktora (operaterom new) nasa variabla se popunjava adresom, gje se nas objekat u memoriji nalazi (referencija na objekat) a nas objekat zauzima memoriju u svoj svojoj velicini.
Prednost upotrebe konstruktora je znaci u tom, sto memorija nije zauzeta sve do konstruiranja objekta u memoriji. To ujedno i znaci, da je objektno programiranje uvijek za nijansu sporije od proceduralnog, jer manipulisanje memorijom zahtjeva neko vrijeme.
- desperate housewife
- Posts: 476
- Joined: 25/09/2010 13:47
#23 Re: Pitanje za programere a i za ljubitelje logike i igara
ovo je malo jasnije. Skontao/la sam Dankjewel!Cookie85 wrote:
Svaka klasa koja nije static ima konstruktor. Ako ga programer nije sam napisao, kompajler kreira "prazni" public konstruktor bez argumenata.
Konstruktor se izvrsava prilikom kreiranja instance klase (new) i onaj ko pokusava kreirati instancu mora imati pristup konstruktoru.
Tri najvaznje primjene konstruktora su:
- Postavljanje vrijednosti varijabli prilikom instanciranja klase - vrijednosti proslijedjene kao argument konstruktoru
- Izvrsavanje dijela koda koji mora biti izvrsen prilikom instanciranja klase - tipa otvaranje file za pisanje ukoliko se radi o klasi koja je zaduzena za zapis u file
- Regulacija tko moze instancirati klasu - npr., mozes imati private konstruktor i static metodu koja poziva konstruktor samo ako vec ne postoji instanca te klase, a ako vec postoji vraca postojecu instancu, tako da moze biti samo jedna instanca kreirana (singleton) ili mozes imati protected konstruktor tako da ne mozes instancirati tu klasu, vec samo one koje je nasljedjuju
Primjer:
Valjda si sad nesto skontao/la.Code: Select all
public class Vrijeme { private int sati; private int minute; private int sekunde; //Konstruktor public Vrijeme(int sati, int minute, int sekunde) { this.sati = sati; this.minute = minute; this.sekunde = sekunde; } ....getteri i setteri ... } public class Main (){ public static void main(String[] args){ Vrijeme vrijeme = new Vrijeme (neke vrijednosti....); //init klase int sati = vrijeme.getSati(); //uporaba klase ..... } }