Una clase es una abstracción que define las características comunes de un conjunto de objetos relevantes para el sistema.
Cada vez que se construye un objeto en un programa informático a partir de una clase se crea lo que se conoce como instancia de esa clase. Cada instancia en el sistema sirve como modelo de un objeto del contexto del problema relevante para su solución, que puede realizar un trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema, sin revelar cómo se implementan estas características.
Un objeto se define por:
- Su estado: es la concreción de los atributos definidos en la clase a un valor concreto.
- Su comportamiento: definido por los métodos públicos de su clase.
- Su tiempo de vida: intervalo de tiempo a lo largo del programa en el que el objeto existe. Comienza con su creación a través del mecanismo de instanciación y finaliza cuando el objeto se destruye.
La encapsulación y el ocultamiento aseguran que los datos de un objeto están ocultos, con lo que no se pueden modificar accidentalmente por funciones externas al objeto.
Existe un caso particular de clase, llamada clase abstracta, que por sus características, no puede ser instanciada. Se suelen usar para definir métodos genéricos relacionados con el sistema que no serán traducidos a objetos concretos, o para definir las interfaces de métodos, cuya implementación se postpone a futuras clases derivadas.
Objeto de una clase, creado en tiempo de ejecución con un estado concreto.