En informática, una clase es una plantilla para el objetivo de la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables y métodos apropiados para operar con dichos datos. Cada objeto creado a partir de la clase se denomina instancia de la clase.
La programación orientada a objetos es la base principal para los tipos de objetos. Permiten abstraer los datos y sus operaciones asociadas al modo de una caja negra. Los lenguajes de programación que soportan clases difieren sutilmente en su soporte para diversas características relacionadas con clases. La mayoría soportan diversas formas de herencia. Muchos lenguajes también soportan características para proporcionar encapsulación, como especificadores de acceso.
Una clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona apoyo en tiempo de ejecución para la manipulación de los metadatos relacionados con la clase.
Componentes
Las clases se componen de elementos, llamados genéricamente «miembros», de varios tipos:
- campos de datos: almacenan el estado de la clase por medio de variables, estructuras de datos e incluso otras clases.
- métodos: subrutinas de manipulación de dichos datos.
- ciertos lenguajes permiten un tercer tipo de miembro: las «propiedades», a medio camino entre los campos y los métodos.
Utilizando un símil con el lenguaje, si las clases representan sustantivos, los campos de datos pueden ser sustantivos o adjetivos, y los métodos son los verbos.
La sintaxis típica de una clase es:
class Nombre {
// Variables miembro (habitualmente privadas)
miembro_1; //lista de miembros
miembro_2;
miembro_3;
// Funciones o métodos (habitualmente públicas)
funcion_miembro_1( ); // funciones miembro conocidas
funcion_miembro_2 ( ); // funciones como métodos
// Propiedades (habitualmente públicas)
propiedad_1;
propiedad_2;
propiedad_3;
propiedad_4;
}
Campos de datos
Los miembros o variables se utilizan para contener datos que reflejan el estado de la clase. Los datos pueden estar almacenados en variables, o estructuras más complejas, como structs, uniones e incluso otras clases.
Habitualmente, las variables miembro son privadas al objeto (siguiendo las directrices de diseño del Principio de ocultación) y su acceso se realiza mediante propiedades o métodos que realizan comprobaciones adicionales.
Métodos en las clases
Los métodos implementan la funcionalidad asociada al objeto. Los métodos son el equivalente a las funciones en programación estructurada. Se diferencian de ellos en que es posible acceder a las variables de la clase de forma implícita o incluida.
Cuando se desea realizar una acción sobre un objeto, se dice que se le manda un mensaje invocando a un método que realizará la acción.
Propiedades
Las propiedades son los atributos de la computadora. Debido a que suele ser común que las variables miembro sean privadas para controlar el acceso y mantener la coherencia, surge la necesidad de permitir consultar o modificar su valor mediante pares de métodos.
Los lenguajes orientados a objetos más modernos añaden la construcción de propiedad, que es una sintaxis simplificada para dichos métodos.