Una clase representa normalmente las características de una cosa y las acciones que puede realizar. Por ejemplo, para representar un animal como una clase de C#, puede asignarle un tamaño, velocidad y fuerza, que se representan como números, y algunas funciones como MoveLeft(), MoveRight(), SpeedUp(), Stop(), etc., en las que podría escribir código para que el "animal" realice esas acciones. En C#, la clase animal tendría la apariencia siguiente:
public class Animal
{
private int size;
private float speed;
private int strength;
public void MoveLeft() // method
{
// code goes here...
}
// other methods go here...
}
Si examina la .NET Framework Class Library, observará que cada clase representa una "cosa", como XmlDocument, String o Form, y cada una de ellas tiene varias acciones que puede realizar (métodos), características que se pueden leer y, a veces, modificar (propiedades), y notificaciones (eventos) que produce cuando se realiza una acción concreta. Los métodos, propiedades y eventos, junto con todas las demás variables internas y constantes (campos), se conocen como miembros de la clase.
La agrupación de miembros en clases no es sólo lógica, además permite ocultar datos y funciones a los que no desea que otro código tenga acceso. Este principio se conoce como encapsulación. Cuando explora las bibliotecas de clases de .NET Framework, está viendo sólo los miembros públicos de esas clases. Cada clase tiene probablemente miembros privados que esa clase o las relacionadas con ella utilizan internamente, pero su finalidad no es que los utilicen las aplicaciones. Cuando cree sus propias clases, decidirá qué miembros deberían ser públicos y cuáles deberían ser privados.