Object-oriented programming involves creating objects that encapsulate both data (state) and behaviors (methods). Classes are templates that define objects and allow the creation of new types of objects. For example, a Point class could represent an x,y coordinate and include behaviors like translating the point and getting the distance to another point. Objects are instantiated from classes using the new keyword. Methods belong to objects to allow modifying or accessing the object's internal state.