A type of programming that focuses on creating objects that have specific behaviours and can interact with one another.