OOP (Object-Oriented Programming)



objektorienteeritud programmeerimine Varem vaadeldi programme kui protseduure ("verbe"), mis opereerisid andmetega ("noomenitega"). Programm võttis sisendandmed, töötles neid ja andis välja väljundandmed. Programmeerijate töö sihiks oli see, kuidas kirjutada loogilisi protseduure ja mitte see, kuidas defineerida andmeid. OOP puhul on aga keskse tähtsusega mitte protseduurid, vaid andmed, sest lõppude-lõpuks on igasuguse arvutustegevuse eesmärgiks tulemus, mitte mingi protseduuri järgimine. Kõigepealt defineeritakse kõik objektid, mida tuleb manipuleerida, samuti nende objektide vahelised seosed. Seda tegevust nimetatakse andmete modelleerimiseks (data modeling). Kui objekt on defineeritud, siis üldistatakse seda kui objektide klassi (class) ning määratakse ära, milliseid andmeid see sisaldab ja milliseid loogilisi protseduure sellega on võimalik teha. Neid loogilisi protseduure nimetatakse meetoditeks (method) . Klassi konkreetset esindajat nimetatakse objektiks või ka klassi eksemplariks (instance). Objekt on see, mis töötab teie arvutil ning objekti meetodid määravad arvuti protsessorile antavad käsud ja objekti parameetrid annavad töötlemiseks vajalikud andmed. 
Objektorienteeritud programmeerimise mõned põhimõtted ja eelised on järgmised:
  • andmeklassi kontseptsioon võimaldab defineerida andmeobjektide alamklasse, millele on iseloomulikud kõik klassi karakteristikud või mingi osa neist. Seda nimetatakse päriluseks (inheritance) ja see sunnib programmeerijaid andmeid põhjalikumalt analüüsima, vähendab programmeerimiseks kuluvat aega ja tagab korrektsema koodikirjutamise
  • on võimalik andmete peitmine, kuna objekt ja tema meetodid teavad ainult neid andmeid, mida on vaja teada. Kuna teistele rakendusprogrammis sisalduvatele objektidele ja meetoditele juurdepääsuks tuleb objekt ümber kirjutada, siis on välditud juhuslik või ettekavatsematu andmete rikkumine, mida on võib ette tulla protseduursete programmide puhul
  • klassi definitsioon on korduvalt kasutatav mitte ainult selles programmis, mille tarvis ta esialgselt loodi, vaid ka teistes objektorienteeritud programmides ning seda võib üle võrgu laiali jaotada teistele programmeerijatele kasutamiseks
  • andmeklasside kontseptsioon võimaldab programmeerijail luua uusi andmetüüpe, mis pole keeles endas defineeritud
Objektorienteeritud programmeerimiseks kasutatakse objektorienteeritud programmeerimiskeeli (OOPL). Praegu on kõige populaarsem objektorienteeritud keel C++ , mille alamhulk Java on mõeldud spetsiaalselt programmiobjektide jaotamiseks klient/server süsteemides (näit. Internetis). Tuntud objektorienteeritud keeled on ka Smalltalk ja Pascal’i objektorienteeritud versioonid