OOP organizes a program into interacting objects. Classes and objects are core concepts - a class is a blueprint for creating objects with common properties and methods. An object has a state, behavior, and identity. Methods define reusable blocks of code that can be invoked on objects. Parameters allow methods to accept input data, while return values allow methods to provide output data.