Object-oriented programming uses classes and objects to organize code and data. A class defines attributes like variables and methods like functions that belong to the class. An object is an instance of a class that stores the attribute values and allows calling methods. Classes help create reusable code through objects and allow encapsulation of data within classes.