Objektorienterad programmering (OOP) är en modell av programmeringsspråk som fokuserar på användningen av objekt istället för åtgärder för att utföra uppgifter. Detta innebär att man tar ett tillvägagångssätt som är mer medveten om data och mindre oroad över logik, vilket är vanligare i andra programmeringsparadigm. Synen på objekt och handlingar är det omvända mot hur det är på andra språk, och tonvikten ligger på själva objekten snarare än på utförandet av uppgifter som sysselsätter objekten. På samma sätt överväger strukturen inte att bestämma hur logiken ska användas, utan på definitionen av de data som kommer att användas i programmeringen.
Att designa datorprogram med objektorienterad programmering börjar med att definiera de objekt som ska manipuleras av programmet. Programmeraren kommer sedan att börja identifiera förhållandet mellan varje objekt, en process som vanligtvis kallas datamodellering. I grund och botten försöker programmeraren placera objekten i en klassificering, och hjälper därför till att definiera de data som är en del av arvet för uppgiften av varje objekt. Faktum är att processen att definiera dessa klasser och underklasser av data vanligtvis kallas arv.
OOP hjälper också till att sortera objekt på ett sätt som tillåter polymorfism att äga rum. Det vill säga, olika objekt kommer att kunna svara på ett gemensamt meddelande, men vart och ett på ett annat sätt som är unikt för det objektet. Samtidigt möjliggör denna typ av programmering inkapsling av ett objekt, vilket effektivt döljer eller skyddar data som är associerade med objektet från enkel sikt utan säkerhetsåtkomst.
En av fördelarna med objektorienterad programmering är att processen drar nytta av modularitet, vilket innebär att objekt och uppgifter grupperas på ett sätt så att varje modul kan ta hänsyn till oberoende. Detta kan vara till stor hjälp när du gör förbättringar av ett program, eftersom modularitet gör det möjligt att ta itu med uppgiften att göra växlingar till inställningen av en del av programmeringen utan att påverka strukturen och funktionen hos de andra modulerna.