Klasa (programiranje): razlika između verzija

m
nema sažetka izmjene
No edit summary
mNo edit summary
{{Nedostaju izvori}}
U [[Objektno orijentirano programiranje|objektno orijentiranom programiranju]], '''klasa''' je prošitivproširiv šablon programskog koda za kreiranje [[Objekt (računarstvo)|objekata]], nudeći početne vrijednosti za članske varijable i implementacije ponašanja (članske funkcije ili metode).{{sfn|Gamma|Helm|Johnson|Vlissides|1995|p=14}}{{sfn|Bruce|2002|loc=2.1 Objects, classes, and object types, {{Google books|9NGWq3K1RwUC|Objects, classes, and object types|page=18|plainurl=yes}}}} U više programskih jezika, ime klase se koristi kao naziv imena za klasu (sam šablon), kao ime za zadani konstruktor klase (subrutina koja kreira objekte) te kao podatkovni tip objekata generisan instanciranjem klase; ovi različiti koncepti se lahko brkaju.{{sfn|Bruce|2002|loc=2.1 Objects, classes, and object types, {{Google books|9NGWq3K1RwUC|Objects, classes, and object types|page=18|plainurl=yes}}}}
 
Kada se kreira objekt preko konstruktora klase, rezultirajući objekt se naziva instanca klase, a članske varijable specifične objektu zovu se varijable instance, za razliku od klasnih varijabli koje se dijele kroz klasu.
 
== Klasa vs. tip ==
U uobičajenoj upotrebi, ljudi često mislese misli na "klasu" objekta, ali preciznije govoreći objekti imaju ''tip'': interfejs, odnosno tipovitipove članskih varijabli, potpisipotpise članskih funckija (metoda) i svojstva koja zadovoljavaju. Istovremeno, klasa ima implementaciju (specifično implementaciju metoda) i može kreirati objekte datog tipa, sa datom implementacijom.{{sfn|Gamma|Helm|Johnson|Vlissides|1995|p=17}} U smilsusmislu teorije tipova, klasa je implementacija ''konkretne'' [[Struktura podataka|podatkovne strukture]] i kolekcije subrutina{{mdashb}}pri čemu je tip interfejs. Različite (konkretne) klase mogu proizvesti objekte istog (apstraktnog) tipa (zavisno od sistema tipa); naprimjer, tip {{Mono|Stack}} može biti implementiran sa dvije klase{{snd}} {{Mono|SmallStack}} (brzo za male stogove, ali se loše skalira) i {{Mono|ScalableStack}} (skalira se dobro ali je previše za mali stog). Slično, data klasa može imati nekoliko različitih konstruktora.
 
Tipovi klasa generalno predstavlja imenice, kao što je osoba, mjesto ili stvar, ili nešto u nominativu, a klasa predstavlja implementaciju ovih. Naprimjer, tip {{Mono|Banana}} može predstavljati svojstva i funkcionalnost [[banana]] općenito, dok klase {{Mono|ABCBanana}} i {{Mono|XYZBanana}} mogu predstavljati načine proizvodnje banana (npr. dobavljači banana ili podatkovne strukture i funkcije za crtanje banana u video igri). Klasa {{Mono|ABCBanana}} može tada proizvesti zasebne banane: instance klase {{Mono|ABCBanana}} će biti objekti tipa {{Mono|Banana}}. Često je data samo jedna implementacija tipa data, ugdje kojem slučajuje ime klase je često identično sa nazivomnazivu tipa.
 
== Također pogledajte ==