Objektinis programavimas (OOP) yra programavimo kalbos modelis, kuriame pagrindinis dėmesys skiriamas objektų naudojimui, o ne veiksmams, siekiant atlikti užduotis. Tai apima požiūrį, kuris labiau atsižvelgia į duomenis ir mažiau rūpinasi logika, o tai dažniau pasitaiko kitose programavimo paradigmose. Objektų ir veiksmų vaizdas yra atvirkštinis, kaip ir kitomis kalbomis, ir akcentuojami patys objektai, o ne užduočių, kuriose naudojami objektai, vykdymas. Panašiai struktūroje atsižvelgiama ne į sprendimą, kaip panaudoti logiką, o į duomenų, kurie bus naudojami programuojant, apibrėžimą.
Kompiuterių programinės įrangos projektavimas naudojant objektinį programavimą prasideda nuo objektų, kuriuos programa turi valdyti, apibrėžimo. Tada programuotojas pradės nustatyti ryšį tarp kiekvieno objekto – procesas paprastai vadinamas duomenų modeliavimu. Iš esmės programuotojas siekia priskirti objektus į klasifikaciją, taip padėdamas apibrėžti duomenis, kurie yra kiekvieno objekto užduočiai atliekamo paveldėjimo dalis. Tiesą sakant, šių duomenų klasių ir poklasių apibrėžimo procesas paprastai vadinamas paveldėjimu.
OOP taip pat padeda rūšiuoti objektus taip, kad būtų galimas polimorfizmas. Tai yra, skirtingi objektai galės reaguoti į bendrą pranešimą, tačiau kiekvienas skirtingai, būdingas tam objektui. Tuo pačiu metu šis programavimo tipas leidžia įkapsuliuoti objektą, efektyviai paslėpti arba apsaugoti su objektu susijusius duomenis, kad juos būtų lengva matyti be saugumo prieigos.
Vienas iš objektinio programavimo privalumų yra tai, kad procese gerai išnaudojamas moduliškumas, o tai reiškia, kad objektai ir užduotys yra sugrupuoti taip, kad kiekvienas modulis galėtų būti svarstomas atskirai. Tai gali būti labai naudinga tobulinant programą, nes moduliškumas leidžia atlikti vienos programavimo dalies sąrankos pakeitimų užduotį, nepažeidžiant kitų modulių struktūros ir funkcijų.