Klasa (Kompjuterikë)

Në Programimin e Orientuar në Objekte, një klasë është një shabllon i zgjerueshëm(ka mundësi të ndryshojë) i kodit për krijimn e objekteve, duke përmbajtuj variabla(të objektit) dhe implementime të të ashtuquajturave sjellje të objektit(funksione,metoda).Në shumë gjuhë, emri i klasës përdoret për thirrjen e shabllonit(klasës), për konstruktorin i cili e krijon objektin e klases si dhe për tipin e të dhënave të objektit të asaj klase.

Me rastin e krijimit të një objekti nga konstruktori i klasës, objekti në këtë rast quhet instancë e klasës, variablat antare specifike për atë objekt quhen variabla të instancës.
### Klasa/Tipi 
Në përdorim të pergjithshem , njerzit shpesh referohen tek “klasa” e një objekti, gjithsesi objektet  kanë tipe: nderfaqen, tipet e variablave antare, metodat e definuara me ato variabla si dhe vetitë të cilat ato i kanë. Në të njejtën kohë, klasa ka implamentime (të metodave), dhe mund të krijoj objekte të tipit në fjalë, me implementimet në fjalë. Në teorinë mbi tipet, një klasë është një implementim- një strukturim konkret i të dhënave dhe kolekcion i nënrutinave, perderisa një tip është një protokol (nderfaqe,interface).Klasa të ndryshme mund të prodhojne objekte të tipeve të njejta p.sh. tipi STACK mund të implementohet nga dy klasa ajo SMALLSTACK dhe SCALABLESTACK. Njejtë, një klasë mund të ketë konstruktor të shumtë.

Tipet përgjithsisht reprezentojnë emra, si një person, vend ose gjësend. Në anën tjetër klasa reprezenton një implementim të këtyre. Për shembull, një tip BANANE mund të reprezentoj vetitë dhe funksionalitetin e bananeve në përgjithsi, përderisa klasat ABC-BANANE dhe XYZ-BANANE reprezentojnë rrugë se si të prodhohen bananet (analogji, ata të cilët furnizojnë dyqanet me banane). Klasa ABC-BANANE mund të prodhoj banana të veqanta: instancat e klases ABC-BANANE do të jenë objekte të tipit BANANE. Krahasim më i thjeshtë do të ishte rasti i vulës, ne e ndretojme vulën (klasën) ashtu siq na konvenon dhe pasaj jemi në gjendje të shtypim (objekte) në letër sa herë të dëshirojmë. Shpesh për një tip kemi vetëm një implementim, në raste të tilla emri i klases është i njejtë me emrin e tipit.

## Dizajni dhe Implementimi 
Klasat janë komposuar nga antarë të cilat definojnë strukturën dhe sjelljen e saj.

### Struktura 
Një klasë përmbanë shpjegime për fushat e të dhanave. Këto zakonisht janë tipe të fushave dhe emra emra të cilat i shoqërohen me variablat në të ashtuquajturën Run Time të programit (Koha në të cilën programi është në egzekutim), keto variabla të gjendjes i takojnë ose klasës ose instanca specifike e klasës. Në shumicën e gjuhëve programuese, struktura e klasës e cakton vendosjen e memorjes së përdorur nga instancat e saj.

### Sjellja 
Sjella e një klase ose instancës së sajë është definuar duke përdorur metodat. Metodat janë mekanizma të cilët kanë aftësinë të operojnë me objekte ose klasa. Këto operacione mund ta ndryshojnë gjendejen e një objekti ose thjesht japin rrugë ti qasemi ati. Egzistojnë shumë lloje të objekteve. Disa tipe të metodave janë të krijuara dhe thirruara nga codi i programerit, perderisa tjerat siq janë: konstruktorët, dekonstruktorët krijohen dhe thirren nga kodi i gjeneruar nga kompajlleri. Një gjuhë programuese mund t'ja mundësoj programerit ti definon dhe thirrë keto metoda speciale( konstruktorët, dekonstruktorët).