A class is a template that defines the form of an object. It specifies both the data and code that will operate on that data. Objects are instances of classes. The data and code that constitute a class are called members or instance variables. A class definition creates a new data type. Objects are created using the new operator, which dynamically allocates memory and returns a reference to the new object. Constructors initialize objects when they are created and can be used to assign initial values to data members. Methods manipulate the data defined by the class and can accept parameters. The garbage collector automatically reclaims memory occupied by objects no longer being used to prevent memory leaks.