|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
5.9.2013, 21:19 | #1 |
Banned
|
Genericko programiranje (OOP)
Pozdrav,
Evo vec dva dana pokusavam sebi da objasnim cemu sluzi genericko programiranje, tj. genericke klase, metode i funkcije u Javi i C++ i uopste mi ne uspeva. A kad nesto ne shvatim ja ne mogu ni da ga primenim u praksi. Moje pitanje glasi cemu zapravo sluzi genericko programiranje i cemu sluze parametri u "< >" zagradama? Shvatio sam da npr. u Javi mogu da se koriste tzv "wildcard"-ovi koji sluze ukoliko je tip parametra nepoznat, ali ono sto ne mogu da skapiram jeste da li to sto se nalazi u zagradama <> oznacava tip klase/metode/funkcije pa na primer mozemo da imamo klasu prezime<Nikolic>, pa prezime<Ivanovic> gde su te klase iste (imaju iste metode/polja) ali su drugog tipa (jedna je Nikolic, druga Ivanovic)? Totalno konfuzno Edit: Bilo bi jako lepo ako bi dobio sto "plasticnije" objasnjenje posto imam ispit u subotu, a genericke klase i wildcardovi (c++ i java) su mi dva-tri zadatka od sest. |
5.9.2013, 21:33 | #2 |
Starosedelac
Član od: 18.7.2012.
Lokacija: Beograd, Srbija
Poruke: 1.258
Zahvalnice: 105
Zahvaljeno 238 puta na 210 poruka
|
Re: Genericko programiranje (OOP)
Genericke klase su klase koje implementiraju ista(polja/metode/konstruktore/destruktore/...) nad razlicitim tipovima podataka. Implementacije mogu da budu iste ili razlicite, u zavisnosti od odluke programera.
Gde se upotrebljuju? Najplasticnije moguce objasnjenje, je kad znas sta treba da uradis, ali ne znas koji ce tip podataka biti prosledjen. Npr. treba da zamenis mesta 4 i 10 clanu neke liste (.NET primer), a ne znas kojih tipova podataka je ta lista. |
5.9.2013, 22:09 | #3 |
Kekule Mekule
|
Re: Genericko programiranje (OOP)
Znaci to je nas naziv za templejt
Jednostavno objasnjenje bi bila templejt klasa za 2d vektor: Kod:
template <typename T> class Vector2D { private: T m_X; T m_Y; public: // Razne metode }; Kod:
Vector2D<int> spriteSize; Vector2D<float> spritePosition; Kod:
T* object; // ... object->SeekThePathToObscurity(); |
Sledeći korisnik se zahvaljuje korisniku Andross na korisnoj poruci: | ||
PeTkO (5.9.2013) |
5.9.2013, 22:17 | #4 | |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Genericko programiranje (OOP)
Templejt ti je kao da pišeš Muji upustvo kako da ređa kutije na policu. Muju konkretno ne zanima šta je u kutiji, ali zna kako da ih poređa na policu.
Tako da Mujo sad može da ređa kutije sa lizalicama, pa posle kutije sa kondomima, pa kutije sa pečenjem. Mujino upustvo predstavlja tu pravila po kojoj tvoja struktura funkcioniše, a kutije su ti templejt. Kao što Muju ne interesuje šta je u kutiji, tako tvoju strukturu ne interesuje sa čim radi, dok god radi po pravilima koja si ti Muji napisao Prostije ne mož EDIT Citat:
Poenta je da obe klase rade isto, samo sa drugim podacima. Pošto pri čuvanju Ivanovića (koji su malo glomazniji i imaju po 100kg ) treba više prostora u memoriji, a za čuvanje NIkolića (koji su malo lakši, po 60kg) treba manje prostora u memoriji, pa samim tim se neki niži deo razlikuje u zavisnosti od tipa, zato mora da postoji način na koji će tvoja klasa da zna sa "kolikim" ljudima barata, da bi moglo to lepo da sa "pakuje", taj način je taj wildcard, koji služi samo da ti kaže kolku ćeš recimo memoriju da alociraš za novi element recimo (dal će ti treba ti mesto za 100kg ili 60kg).. |
|
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci: | ||
PeTkO (5.9.2013) |
5.9.2013, 23:05 | #5 |
Banned
|
Re: Genericko programiranje (OOP)
Hvala puno, sada mi je dosta jasnije od suvoparne teorije koje imam u prezentacijama. U svakom slucaju, oticicu sutra kod profesora na kosultacije cisto da vidi da se interesujem
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Java programiranje - Pomoc/Saveti | MilosGak | Programiranje | 17 | 28.12.2016 10:25 |
Uvod u programiranje | Milan1997 | Programiranje | 19 | 8.3.2013 22:42 |
Generičko programiranje - teorija i praksa | ivan90BG | Programiranje | 1 | 30.1.2012 23:52 |
Program za C programiranje | viktorcar100 | otpaTci | 6 | 25.7.2011 10:48 |
Linux i C++ programiranje | Andross | Slobodni softver | 13 | 4.1.2007 21:43 |