Object-Oriented Programming (OOP), as opposed to Procedural Programming, relies on modules that connect and communicate amongst each other. OOP is about a particular way of looking at a problem and breaking it down into smaller pieces – called Objects.
Objects contain both information and behavior (or properties and methods). Properties are attributes, defined by key/value pairs. Methods are functions that can modify an object or allow interaction between objects.
Objects, along with Classes, are the fundamental building blocks of an object-oriented project.