Objektorienteeritud programmeerimine (OOP) on programmeerimiskeele mudel, mis keskendub tegevuste asemel objektide kasutamisele ülesannete täitmiseks. See hõlmab lähenemisviisi, mis arvestab rohkem andmeid ja on vähem seotud loogikaga, mis on tavalisem teiste programmeerimisparadigmade puhul. Objektide ja tegevuste vaade on vastupidine teistes keeltes ning rõhk on objektidel endil, mitte objekte kasutavate ülesannete täitmisel. Samamoodi ei võta struktuur arvesse loogika kasutamise otsustamist, vaid programmeerimisel kasutatavate andmete määratlemist.
Arvutitarkvara projekteerimine objektorienteeritud programmeerimisega algab objektide määratlemisest, mida programm peab manipuleerima. Seejärel hakkab programmeerija iga objekti vahelist seost tuvastama – seda protsessi nimetatakse tavaliselt andmemodelleerimiseks. Põhimõtteliselt püüab programmeerija paigutada objekte klassifikatsiooni, aidates seega määratleda andmeid, mis on osa pärandist, mille iga objekt ülesandele toob. Tegelikult nimetatakse nende andmeklasside ja alamklasside määratlemise protsessi tavaliselt pärimiseks.
OOP aitab ka objekte sorteerida viisil, mis võimaldab polümorfismi. See tähendab, et erinevad objektid saavad vastata ühisele sõnumile, kuid igaüks erineval viisil, mis on selle objekti jaoks ainulaadne. Samal ajal võimaldab seda tüüpi programmeerimine objekti kapseldada, varjates või kaitstes objektiga seotud andmeid hõlpsalt ilma turvajuurdepääsuta.
Üks objektorienteeritud programmeerimise eeliseid on see, et protsess kasutab hästi modulaarsust, mis tähendab, et objektid ja ülesanded on rühmitatud viisil, mida iga moodul on võimeline iseseisvalt käsitlema. See võib olla suureks abiks programmi täiustamisel, kuna modulaarsus võimaldab lahendada programmi ühe osa seadistuste muutmise ülesande, ilma et see mõjutaks teiste moodulite struktuuri ja funktsioone.