Objektisuuntautunut ohjelmointi (OOP) on ohjelmointikielen malli, joka keskittyy objektien käyttöön toimintojen sijasta tehtävien suorittamiseksi. Tämä edellyttää lähestymistapaa, joka on tietoisempi tiedoista ja vähemmän logiikasta, mikä on yleisempää muissa ohjelmointimalleissa. Näkymä esineistä ja toiminnoista on päinvastainen kuin muilla kielillä, ja painopiste on itse esineissä eikä esineitä käyttävien tehtävien suorittamisessa. Rakenne ei myöskään harkitse logiikan käyttämistä, vaan ohjelmoinnissa käytettävän datan määrittelyä.
Tietokoneohjelmiston suunnittelu olio -ohjelmoinnilla alkaa määrittelemällä objektit, joita ohjelma käsittelee. Ohjelmoija alkaa sitten tunnistaa kunkin objektin välisen suhteen, prosessia, jota yleensä kutsutaan datamallinnukseksi. Pohjimmiltaan ohjelmoija pyrkii sijoittamaan objektit luokitukseen, mikä auttaa määrittämään tiedot, jotka ovat osa perintöä, jonka kukin objekti tuo tehtävään. Itse asiassa näiden tietojen luokkien ja alaluokkien määrittelyprosessia kutsutaan yleensä perinnöksi.
OOP auttaa myös lajittelemaan esineitä tavalla, joka mahdollistaa polymorfismin tapahtuvan. Toisin sanoen eri objektit pystyvät vastaamaan yhteiseen viestiin, mutta kukin eri tavalla, joka on ainutlaatuinen kyseiselle objektille. Samaan aikaan tämäntyyppinen ohjelmointi mahdollistaa objektin koteloinnin, piilottamalla tai suojaamalla tehokkaasti kohteeseen liittyvät tiedot helpolta näkymältä ilman suojauskäyttöä.
Yksi olio -ohjelmoinnin eduista on, että prosessi käyttää hyväksi modulaarisuutta, mikä tarkoittaa, että objektit ja tehtävät on ryhmitelty siten, että jokainen moduuli pystyy harkitsemaan itsenäisesti. Tästä voi olla suuri apu, kun ohjelmaa parannetaan, koska modulaarisuus mahdollistaa vuorovaikutuksen tekemisen ohjelmoinnin yhden osan asetuksiin vaikuttamatta muiden moduulien rakenteeseen ja toimintaan.