Klassipõhine objektorienteeritud programmeerimine

Klassipõhine objektorienteeritud programmeerimine ehk klassipõhine programmeerimine on objektorienteeritud programmeerimise (OOP) stiil, kus pärimine käib klasside kaudu, mitte objektide enda kaudu (prototüübipõhine programmeerimine). 

Kõige populaarsem ja arenenum OOP mudel on klassipõhine mudel, kus objektidel on olek (andmed), käitumismudel (meetodid, operatsioonid) ja identiteet (unikaalsed omadused, mis eristavad seda teistest objektidest). Objekti struktuuri ja käitumismudeli määrab klass. Objekti loomine käib klassipõhiselt, seega on iga objekt vastava klassi eksemplar. 

 Kapseldamine 

Kapseldamine piirab kasutaja ligipääsu teatud objekti osadele, et kaitsta koodi juhuslike vigade eest. Samuti võimaldab see teha koodis muudatusi programmi liigselt muutmata. Kapseldamine ei piirdu vaid objektorienteeritud programmeerimiskeeltega. Definitsiooni järgi keskendub kapseldamine vajaliku info grupeerimisele, kuid mitte turvaprobleemidele. Tavaliselt puuduvad OOP keeltes objektidele ranged turvapiirangud ning eksisteerivad meetodid peidetud andmetele ligi pääsemiseks. Nende meetoditega on võimalik objekti väärtusi muuta ja välja kutsuda. 

 Pärimine 

Klassipõhises programmeerimises käib pärimine ühe klassi laiendamise läbi teise klassi: olemasolev klass on ülemklass ning uus klass on alamklass. Iga alamklass pärib kõik ülemklassi omadused ja lisab neile iseenda unikaalsed omadused. Kui alamklassil on vaid üks ülemklass, on tegemist ühekordse pärimisega. Kui aga alamklassil on mitu ülemklassi, kutsutakse seda mitmekordseks pärimiseks. Seega tekib klasside hierarhia, ühekordse pärimise puhul puu ning mitmekordse pärimise puhul võre.

Pärimise põhiomaduseks on nii liidese kui ka implementatsiooni pärimine. Pärimist on võimalik teostada ka klassideta, nagu tehakse prototüübipõhises programmeerimises. 

 Näidiskeeled 

Kuigi Simula pani alguse koodi klassideks jaotamisele, on esimeseks tuntumaks klassipõhise programmeerimiskeele näiteks Smalltalk. Klassipõhiste keelte hulka kuuluvad veel PHP, C++, Java, C# ja Objective-C.

 Vaata ka 

 Programmeerimise paradigma
 Objektorienteeritud programmeerimine
 Prototüübipõhine programmeerimine
 Klass (programmeerimine)

 Viited 

 Välislingid 

 Klassipõhine objektorienteeritud programmeerimine (inglise keeles)

Kategooria:Programmeerimise paradigmad