Clases
El mundo real agrupa a los individuos en grupos. Cada tipo de grupo se corresponde con una clase en la terminología de POO, y cada individuo, con un objeto. Una clase es un modelo para un objeto, en el que se definen tanto sus características (mediante los atributos) como su comportamiento o capacidades (mediante métodos).
Clases
Definimos una clase como un modelo que define las características y comportamientos comunes de un tipo de objeto. Una clase es un tipo, ya que describe un conjunto potencial de estructuras de datos, denominadas instancias de la clase. Una clase es similar en algunos aspectos a un módulo. Cada objeto creado a partir de una clase comparte la misma estructura básica y comportamiento, aunque pueda tener valores específicos diferentes para sus atributos.
Los elementos de una clase son:
- Atributos: Son las variables definidas dentro de la clase que describen el estado o las características de un objeto. Estos atributos también se conocen como variables de instancia. Por ejemplo, si tienes una clase llamada
Persona, puedes tener atributos comoNombreeEdad, que describen características de una persona. - Métodos: Son las funciones definidas en la clase que describen el comportamiento de los objetos de esa clase. Los métodos permiten a los objetos realizar acciones o interactuar entre sí. Por ejemplo, en la clase
Persona, puedes tener métodos comoCaminar()oDormir(), que describen las acciones que una persona puede realizar. - Constructor: Es un método especial que se utiliza para inicializar un nuevo objeto de la clase. El constructor permite establecer valores iniciales para los atributos cuando se crea un objeto. Aunque no es estrictamente necesario, es muy común en clases que necesitan valores iniciales al crearse.
Objetos
En la vida real, un objeto se define por una serie de características, llamadas propiedades, y realiza una serie de operaciones, métodos.
En programación orientada a objetos (POO), un objeto es una instancia de una clase, y representa una entidad concreta que combina tanto datos como comportamiento relacionado con esos datos.
Las características de un objeto son:
- Estado (Atributos): Cada objeto tiene un conjunto de características o propiedades, llamadas atributos o variables de instancia, que almacenan datos específicos de ese objeto. Por ejemplo, un objeto de clase
Personapuede tener un atributoNombreque guardaría el nombre de la persona en cuestión. - Comportamiento (Métodos): Los objetos también tienen funciones llamadas métodos, que definen las acciones que el objeto puede realizar o el comportamiento que puede exhibir. Siguiendo con el ejemplo anterior, un objeto de clase
Personapodría tener un método llamadoDormir, que simularía la acción de dormir para esa persona. - Identidad: Aunque dos objetos puedan tener el mismo estado y comportamiento (atributos y métodos iguales), son considerados objetos distintos con identidades únicas. Cada objeto ocupa un espacio de memoria distinto, lo que hace que cada uno sea único dentro del programa.
Relación entre clase y objeto
Veamos a continuación un ejemplo para ver la relación entre clases y objetos. Persona sería una clase, que podría tener unas características almacenadas en sus atributos: Nombre, Fecha de nacimiento, Peso y Altura, así como unos comportamientos, que constituirían sus métodos: dormir, comer y caminar. Las instancias de esa clase persona (los objetos) serían cada una de las personas individuales, en el gráfico del ejemplo, Antía, Xurxo y Olaia. Cada uno tiene sus propios valores de los atributos.
Resumen
| Clases | Objetos |
|---|---|
| No tienen existencia real, son solo el molde de creación de los objetos. | Tienen existencia real y unas propiedades con valores concretos. |
| Son elementos estáticos, no evolucionan en el tiempo. | Son elementos dinámicos, su estado evoluciona durante la ejecución del programa. |
| De una clase se pueden crear muchos objetos. | Un objeto solo puede ser creado a partir de una clase. |
Podemos decir que la clase es el tipo de datos de un objeto.