In object-oriented programming, a class is a template definition of the methods and variables in a particular kind of object. Thus, an object is a specific instance of a class; it contains real values instead of variables. In .NET languages, classes are templates used for defining new types. Classes describe both the properties and behaviors of objects.