Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 5.9.2013, 21:19   #1
PeTkO
Banned
 
Član od: 6.11.2005.
Lokacija: Iza tebe
Poruke: 2.242
Zahvalnice: 419
Zahvaljeno 298 puta na 192 poruka
Slanje poruke preko Skypea korisniku PeTkO
Određen forumom 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.
PeTkO je offline   Odgovor sa citatom ove poruke
Stara 5.9.2013, 21:33   #2
RexGrammer
Starosedelac
 
Član od: 18.7.2012.
Lokacija: Beograd, Srbija
Poruke: 1.258
Zahvalnice: 105
Zahvaljeno 238 puta na 210 poruka
Određen forumom 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.
RexGrammer je offline   Odgovor sa citatom ove poruke
Stara 5.9.2013, 22:09   #3
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.129
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom 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
};
T ti je u principu nepoznati tip podatka koji hoces da koristis u svojoj klasi. Zasto bi ti on bas trebao? Pa recimo kada pravis igru koordinate objekata ces predstavljati preko float vektora, dok ce ti pak velicina sprajta biti predstavljena preko int vektora, nesto levo mozda trazi long vektore itd. Umesto da pravis razlicite klase koje rade jedno te isto samo nad drugacijem tipu podataka, ti si napravio templejt klasu koja moze da prihvati razlicite tipove podataka u obliku:

Kod:
Vector2D<int> spriteSize;
Vector2D<float> spritePosition;
Naravno za kompleksnije potrebe mozes da koristis nepodrazumevane tipove podataka tj. tvoje neke klase/strukture ali onda moras da pazis da ako u templejt klasi pozivas npr:

Kod:
T* object;
// ...
object->SeekThePathToObscurity();
taj metod bude zapravo implementiran u odgovarajucim klasama.
Andross je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Andross na korisnoj poruci:
PeTkO (5.9.2013)
Stara 5.9.2013, 22:17   #4
Teva
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
Određen forumom 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:
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 :confused
E pa one su u suštini iste a različite xD

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)..
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
PeTkO (5.9.2013)
Stara 5.9.2013, 23:05   #5
PeTkO
Banned
 
Član od: 6.11.2005.
Lokacija: Iza tebe
Poruke: 2.242
Zahvalnice: 419
Zahvaljeno 298 puta na 192 poruka
Slanje poruke preko Skypea korisniku PeTkO
Određen forumom 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
PeTkO je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


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


Sva vremena su po Griniču +2 h. Sada je 6:53.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com