Klasa (programiranje)

U objektno orijentiranom programiranju, klasa je proširiv šablon programskog koda za kreiranje objekata, nudeći početne vrijednosti za članske varijable i implementacije ponašanja (članske funkcije ili metode). 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.

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.

U nekim jezicima, klase su samo karakteristika u toku vremena kompajliranja (nove klase ne mogu biti deklarisane pokretanjem programa), dok su klase u drugih programskih jezika "građani prve klase" i same po sebi generalno objekti. U ovih jezika, klasa koja kreira klase naziva se metaklasa.

 Klasa vs. tip 
U uobičajenoj upotrebi, često se misli na "klasu" objekta, ali preciznije govoreći objekti imaju tip: interfejs, odnosno tipove članskih varijabli, potpise č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. U smislu teorije tipova, klasa je implementacija konkretne podatkovne strukture i kolekcije subrutinapri čemu je tip interfejs. Različite (konkretne) klase mogu proizvesti objekte istog (apstraktnog) tipa (zavisno od sistema tipa); naprimjer, tip  može biti implementiran sa dvije klase  (brzo za male stogove, ali se loše skalira) i  (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  može predstavljati svojstva i funkcionalnost banana općenito, dok klase  i  mogu predstavljati načine proizvodnje banana (npr. dobavljači banana ili podatkovne strukture i funkcije za crtanje banana u videoigri). Klasa  može tada proizvesti zasebne banane: instance klase  će biti objekti tipa . Često je data samo jedna implementacija tipa, gdje je ime klase je često identično nazivu tipa.

 Također pogledajte 
 Objektno orijentirano programiranje

 Reference 

Kategorija:Programiranje