In .NET languages, classes are templates used for defining new types. With classes we can describe both the properties and behaviors (or functionality) of objects. Properties contain the data that are exposed by the class. Behaviors are defined by the public methods (also called member functions) and events of the class. Collectively, the public properties and methods of a class are known as the object interface. Classes themselves are not objects, but instead they are used to create (i.e.  instantiate) objects in memory.