Objektově orientované programování (OOP) je typ programovacího paradigmatu, ve kterém jsou programovací úlohy modelovány jako entity nebo „objekty“ sestávající z atributů a souvisejících procedur, často označovaných jako metody. OOP je navržen tak, aby snižoval složitost a usnadňuje rozšíření nebo úpravu stávajícího kódu. Jelikož objekty obsahují data a metody (operace pro manipulaci s daty), mohou spolu objekty komunikovat.
Snad nejznámějším objektově orientovaným programovacím jazykem je C++, ale existuje mnoho dalších jazyků, které využívají objektově orientovaný přístup, včetně Java, C#, JavaScript, Ruby a Python. V rámci objektově orientovaného programovacího paradigmatu lze objekty dále organizovat do tříd, které definují standardizované atributy a metody, které by všechny objekty stejného typu měly sdílet.
V objektově orientovaném programování lze k vytvoření efektivní programovací struktury využít vlastnosti abstrakce, dědičnosti, polymorfismu a zapouzdření. Abstrakce umožňuje definici atributů a metod objektu a zároveň skrývá vnitřní implementaci. To zabrání ostatním částem programu přímo manipulovat s vnitřním stavem objektu. Dědičnost umožňuje objektu znovu použít chování nebo atributy jiného objektu. Polymorfismus umožňuje opakované použití stejného chování u více objektů. Nakonec zapouzdření popisuje sdružování souvisejících atributů a chování do jediného objektu.
Principy OOP se staly ústředními pro mnoho moderních programovacích jazyků a přístupů, jako je programování orientované na komponenty. Vývojáři softwaru využívají koncepty OOP k vývoji efektivních, škálovatelných a opakovaně použitelných softwarových řešení.