Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?

[es] :: Java :: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?

Strane: < .. 1 2 3

[ Pregleda: 10523 | Odgovora: 49 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
c-bg-d-p4-109.bvcom.net.



+1064 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?15.02.2014. u 03:51 - pre 123 meseci
Ako uzmemo u obzir dva nova i pretpostavljam veoma perspektivna jezika Go and Rust, videcemo
da je interfejs in, a klase i nasledjivanje out ;)
Jablan gleda iz svoje perspektive. Mislim da od Jave nema objektno orijentisanijeg
jezika ;)
Interesantan clanak za one koje zanima:
http://lwn.net/Articles/548560/
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?15.02.2014. u 09:04 - pre 123 meseci
Sta je buducnost to se nikada ne zna, sadasnjost je lako videti sta je a to je ono za cim je najveca potraznja, tj. znanjem kog programskog jezika mozes najbolje unovciti svoje vreme i trud, od kvaliteta znanja jezika zavisi i nivo primanja i polozaj u firmi.

Najveci razlog sto malo ko ce ih uciti je jako slaba literatura za njih(predpostavljam), ponuda posla za njih je trenutno mala i tesko se nalazi pomoc, nije sigurno da ce biti jezici buducnosti a iskreno i ja kada bih eksperimentisao sa nekim ne svakidasnjim programiranjem ucio bih vestacku inteligenciju ...i to je neki vid programiranja ... ;)

Za HTML , web dizajn i pravljenje sajtova sam imao solidno predznanje pre pocetka ucenja jave. Ali smatram da ce mi se vreme i trud ulozeni u ucenje Jave(kasnije i Android) vise isplatiti nego da sam naucio HTML i slicne jezike koji su mi neuporedivo laksi za ucenje.

PS. Samo iznosim moje misljenje sa shvatanjem da bolje znate programiranje ali imam neka svoja razmisljanja. Kod pojma objektno orijentisanijeg
jezika koje je Branimir spomenuo i rekao Java da to nije , sto mene zanima da li je Java OO jezik ili nije osim cisto neke diskusije nebitne za samo programiranje. Moje je da je naucim i koristim i da mi resava zadatke sa stavom u cosku negde,koji mi je najmanje bitan da je to OO jezik. Danas je stav da je OO jezik, sutra to neko dokaze i usvoji se da nije OO jezik, meni ce biti svejedno, ja cu i dalje pisati isti kod i kod ponude trazenja posla pisace poznavanje Jave a ne OO jezika ... Inace lep vikend svima ;)
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.static.isp.telekom.rs.



+45 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?27.02.2014. u 15:11 - pre 122 meseci
Posle odlaganja resio sam da se vise posvetim oblastima koje sam preskakao do sada a na neke nisam ni nailazio. I sve ovo do sada sto sam ucio mi tako jednostavno izgleda kada pocnem da citam objasnjenja i kako funkcionise ovo ...... polimorfizam, interfejsi , kopiranje i kloniranje objekata, kastovanje objekata , staticke metode , apstraktne klase, enumeracije, kolekcije....

Nije da nije jasno kako sta funkcionise kada citam ali sve ovo povezati sam , kada sta upotrebiti , tako zapetljano sada izgleda .... nadam se da ce biti kao sa predhodnim oblastima koje su isto tako izgledale slozeno na pocetku a sada izgledaju tako prosto....

Samo me zanima da li ove oblasti koje sam nabrojao se ne smatraju pocetnickim , to jest da li sa znjanjem primenje tih metoda moze se reci da se java solidno zna. Pitam jer kako ucim stalno otkrivam nesto novo (znam da se nikada ne moze sve ni nauciti) pa cisto da znam gde se nalazim sa ucenjem...
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?27.02.2014. u 15:17 - pre 122 meseci
Najlakše ćeš videti gde si sa učenjem ako nađeš bilo koji open-souce projekat i uzmeš da ga čitaš. Ako provaljuješ šta radi koji kôd, čemu služi koja klasa itd, onda si dobar.
 
Odgovor na temu

Andrej013

Član broj: 157053
Poruke: 321
*.nyc.res.rr.com.



+694 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?28.02.2014. u 05:12 - pre 122 meseci
Citat:
casperns2:
Posle odlaganja resio sam da se vise posvetim oblastima koje sam preskakao do sada a na neke nisam ni nailazio. I sve ovo do sada sto sam ucio mi tako jednostavno izgleda kada pocnem da citam objasnjenja i kako funkcionise ovo ...... polimorfizam, interfejsi , kopiranje i kloniranje objekata, kastovanje objekata , staticke metode , apstraktne klase, enumeracije, kolekcije....

Nije da nije jasno kako sta funkcionise kada citam ali sve ovo povezati sam , kada sta upotrebiti , tako zapetljano sada izgleda .... nadam se da ce biti kao sa predhodnim oblastima koje su isto tako izgledale slozeno na pocetku a sada izgledaju tako prosto....

Samo me zanima da li ove oblasti koje sam nabrojao se ne smatraju pocetnickim , to jest da li sa znjanjem primenje tih metoda moze se reci da se java solidno zna. Pitam jer kako ucim stalno otkrivam nesto novo (znam da se nikada ne moze sve ni nauciti) pa cisto da znam gde se nalazim sa ucenjem...

Vidi, prvo, to sto si do sada naucio je mnogo i za svaku pohvalu ali moras jos dosta da ucis da bi dosao do nivoa da neko kaze sebi-e ovaj mali zna po nesto, vredi da ga placam 500eura mesecno.
Sledeci korak bi trebalo da ti bude savladavanje nekih osnovnih mehanizama u Javi. Najjednostavniji primer je overriding equals metode i hash code-a, zasto su bitni, u kakvoj su vezi sa kolekcijama (na primer HashMap) dalje, izuzeci, generics, a u isto vreme bi trebalo da utemeljis sve koncepte koje si gore nabrojao do te mere da ih u potpunosti razumes i da si u stanju da ih bez naprezanja objasnis. Kad to sve savladas, mozes da sa ponosom kazes da znas najosnovnije. Posle toga uzmes lepo effective java i polako prelistavas. Neces sve razumeti, ali pokusaj. Svaki paragraf sadrzi vredne mudrosti o kojima treba razmisliti, prihvatiti ih i usvojiti. Knjiga se sporo cita.

Nakon toga(ili paralelno sa effective java) moras da ucis multithreading. To je velika tema kojoj valja posvetiti vreme. Kada to savladas, mozes da kazes da nisi vise pocetnik. Najlakse je ako shvatis da je to polje koje moras da naucis, narocito u danasnjem svetu multiprocesorskih racunara. Knjiga koju najtoplije preporucujem je "java concurrency in practice", a Core Java Volume I ima dobar uvod u tu oblast.

Takodje, povremeno udji u debug mode u eclipse-u. Pomaze da intuitivno pocnes da razmisljas o objektima koje pravis.

Glavno je da znas da ti treba vise volje da prihvatis osnovne koncepte kada si pocetnik nego napredne kada vec imas malo iskustva, tako da si najtezi period pregrmeo. Sada ce biti sve zanimljivije i zanimljivije :)
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?28.02.2014. u 21:07 - pre 122 meseci
Hvala Andrej puno na savetu ...
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?04.03.2014. u 19:45 - pre 122 meseci
Pozdrav, evo par dana radim interfejs i Apstraktne klase, pa ako bi mi samo neko otklonio neko neke nedoumice.

Na primer uradim ceo zadatak sa par klasa i podklasa bez upotrebe interfejsa ili apstraktne klase

Ako hocu sada u istom zadatku da koristim interfejs cela razlika u zadatku mi je sto cu da dodam interface klasu gde su prazne metode...

Ako hocu da koristim Apstraktnu klasu cela raznila u odnosu na klasican kod je sto cu da napravim neki metod da bude abstract i da nema telo metoda , koje bi kasnije pravio u izvedenim klasama.

E sad mene zanima da li vi koristite ove metode i jesu li neki standardi da se koriste. Mozda u velikim projektima razumem da se koristi gde imamo interfej LETETI pa da se predefinise kasnije ako imamo avion ili zivotinje ili decije igracke koji su delovi razlocitih paketa ili klasa ali u nekim zadatcima gde nema takvih slicnih imena metoda ne vidim zasto bi koristio .

Tako isto i za apstraktne klase, koliko sam razumeo jedina je razlika sto u baznoj klasi nije definisana neka metoda a kasnije kada se u izvedenim klasama definise ide sve normalno, ali ako istu metodu definisemo null vrednoscu ili nulom za odredjene tipove podataka ne vidim neku korist njene upotrebe. Na primer ako hocu u klasi Povrsina da definisem metod Povrsina bez apstraktne klase bi isao
Code:
public double povrsina(){
        return 0;
    }


a ako bi koristio apstraktnu klasu u celom kodu svih klasa sve sto se menja je ovo i dodavanje reci abstract u naslov klase :
Code:
public abstract double povrsina();


Da li ja nisam dobro razumeo ova dva pojma ili se oni ozbiljnije koriste pri vecim projektima gde ima svrhe za njihovu upotrebu .. ???
 
Odgovor na temu

blekmor
fax
fax

Član broj: 309532
Poruke: 55
*.dynamic.sbb.rs.



+30 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?04.03.2014. u 20:44 - pre 122 meseci
Prvo što moraš da shvatiš je da poenta nasledjivanje u OO jezicima nije samo da izvučeš neke zajedničke osobine nekih klasa, da implementiraš te zajedničke osobine i da ih nasledjuješ kako bi "uštedio prostor" tj manje kodirao. Poenta nasledjivanja je da iskoristiš osobinu polimorfizma i dinamičkog vezivanja. Konkretan primjer:
želiš da napraviš neka vozila (kamion, automobil....), a pored toga želiš da napraviš servis za sva vozila. Kako ćeš to uraditi? Možeš da napraviš klasu ServisVozila i da implementiraš metod u toj klasi za svako vozilo, npr
Code:
public void popraviKamion(Kamion klijent){
 // provjeri auspuh
 klijent.podaciAuspuh();
 //...
 // provjeri kocnice
 klijent.podaciKocnice();
 //...
}

public void popraviAutomobil(Automobil klijent){
 // provjeri auspuh
 klijent.podaciAuspuh();
 //...
 // provjeri kocnice
 klijent.podaciKocnice();
 //...
}

ili da iskoristiš nasledjivanje, pa da ubješ više muva jednim udarcem, i omogućiš servisu da popravlja i neka druga vozila. Napraviš Abstraktnu klasu Vozilo koje ima ove metode (podaciAuspuh(),podaciKocnice()..). Ukoliko je za svako vozilo identična implementacija nekog metoda, implementiraš ga odmah u abstraktnoj klasi, ukoliko nije, metod proglasiš abstraktnim. Zatim napraviš nove klase (Automobil,Kamion..) koje nasledjuju abstraktnu klasu Vozilo, i implementiraš za svaku vrstu vozila metode koje su abstraktne u nadklasi, odnosno koje su specifične za svaku vrstu vozila. Zatim ćeš u klasi ServisVozila da napraviš samo jedan metod, koji kao parametar prima objekat tipa Vozilo i radi sa njim. Da li ćeš kasnije tom servisu da proslijediš Automobil, Kamion ili neko drugo vozilo , to nije ni bitno. Osobina koja se zove "dinamičko vezivanje" će da "skontao" šta je tu ustvari prosledjeno i da uradi ono što treba sa datim objektom.
To je poenta nasledjivanja.

Nasledivanje se, u Javi, može obezbjediti direktnim nasledjivanjem klase. Kako Java ne prepoznaje višestruko nasledjivanje(da jedna klasa nasledi više drugih klasa), to se "simulira" preko interfejsa. Ako ponovo pogledaš gornji primjer vidjećeš da bi program radio apsolutno isto ukoliko bi umjesto apstraktne klase koristio interfejs Vozilo, a u vrstama vozila(automobil,kamion) implementirao taj interfejs...

Abstraktna klasa i interfejs, su u ovom smislu, skoro pa ekvivalentni.

Abstraktna klasa se koristi ukoliko znaš koje sve metode i osobine želiš da izdvojiš za neki skup klasa, i ukoliko neke metode znaš kako da implementiraš tako da implementacija odgovara svim "podklasama", ali ne znaš kako da implementiraš sve (npr podaci za aspuh se dobijaju isto za svako vozilo i taj metod implementiraš, dok se podaci za kočnice ne dobijaju isto za automobil i kamion, pa taj metod ne implementiraš(ključna riječ abstract), i ostaviš podklasama da svaka implementira po svojim potrebama). Nedostatak abstraktne klase je to što je njena svrha da je neko naslijedi, te taj neko neće moći da naslijedi ni jednu drugu klasu.

Interfejs nije klasa, tako da ne zauzima to mjesto za nasledjivanje, i može ga implementirati svako, pošto svako može implementirati beskonačno mnogo interfejsa. Sa druge strane interfejs ne može sam da implemnetira ni jedan metod, za razliku od abstraktne klase, te ćeš možda morati malo više da kucaš ukoriko koristiš njega.

Ja jako rijetko koristim abstraktne klase, uvjek ću prije iskoristiti interfejs. To ne znači da ne trebaš da koristiš abstraktne klase, nego da ih ja, iz navike, zaobilazim.

Pozdrav
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?05.03.2014. u 07:28 - pre 122 meseci
U vezi tvog primera sa apstraktnom klasom i praznom metodom:

Možeš ti da zameniš apstraktnu klasu običnom klasom sa metodom koja vraća null, ali time ostavljaš prostor za grešku (da neko instancira klasu koja nije predviđena za to i da pozove metode koje nisu predviđene za pozivanje). Apstraktna klasa ne može da se instancira i praktično ti sprečavaš tu mogućnost greške na compile-time nivou.

Interfejsi su u Javu uvedeni zato što Java ne podržava višestruko nasleđivanje - inače bi sve mogao da uradiš sa apstraktnim klasama.
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?05.03.2014. u 20:23 - pre 122 meseci
Hvala ljudi na odgovorima, sada je mnogo jasnije cemu sluze,tj. zasto ih koristiti . Koliko mi se cini na prvi pogled bar kada vezbam zadatke nisu komplikovani za primenu, sta vise, na nista jednostavnije nisam ni naisao do sad , samo znati kada i sta primeniti ...

Jos malo oko Interfejsa i dolazim do dela koji je bas Andrej spominjao sta bi sledece trebalo uciti , kolekcije, izuzetci, ugnjezdene klase,LinkedList,HashMap, finally ... "Sledeci korak bi trebalo da ti bude savladavanje nekih osnovnih mehanizama u Javi. Najjednostavniji primer je overriding equals metode i hash code-a, zasto su bitni, u kakvoj su vezi sa kolekcijama (na primer HashMap) dalje, izuzeci, generics, a u isto vreme bi trebalo da utemeljis sve koncepte koje si gore nabrojao do te mere da ih u potpunosti razumes i da si u stanju da ih bez naprezanja objasnis.

Pozdrav i hvala jos jednom svima na savetima, sobzirom da samo uvece imam vremena za ucenje zadovoljan sam kao ide ali i svestan da sam jos dugo ima da plovim pocetnickim vodama, jos dosta ispisanog koda mora proci kroz prste...
 
Odgovor na temu

[es] :: Java :: Problem oko ucenja jave, da li je to nesigurnost ili nedostatak vezbanja ?

Strane: < .. 1 2 3

[ Pregleda: 10523 | Odgovora: 49 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.