You are on page 1of 2

¿Qué es un objeto?

Objeto es el concepto clave de la Programación Orientada a Objetos, la idea de objeto es similar a la del
mundo real, un objeto puede ser una silla, una mesa. Tu perro es un objeto.
Los objetos tienen dos características: Un estado y un comportamiento. Fijate que por ejemplo tu perro
tiene un estado: nombre, color, raza, altura, etc. y un comportamiento: ladrar, cavar pozo, llorar, dormir,
comer, etc.
Un auto es un objeto. También tiene un estado: Cantidad de puertas, color, tamaño, etc. y un
comportamiento: acelerar, frenar, subir cambio, bajar cambio, girar izq., girar der., etc.
Entonces podemos definir a un objeto en POO, como un conjunto de datos y funciones relacionadas. A las
funciones de los objetos, tales como acelerar en el caso del auto, de aquí en más las llamaremos
métodos, a los datos los llamaremos atributos.
Los objetos en programación, son modelados observando objetos del mundo real, por ejemplo
implementamos el objeto "perro" dentro de nuestro programa definiendo los atributos y métodos del
objeto perro real.
El objeto "Auto" se puede representar gráficamente como sigue:

Un ejemplo mas complicado de un objeto podría ser el siguiente:


Objeto: Cuenta bancaria
Atributos: tipo, titular, saldo.
Métodos: Depositar, Extraer.
Aquí se ve la necesidad de que el atributo "saldo" sea solo accesible a través de los métodos "Depositar"
y "Extraer" por una cuestión de seguridad, encapsulamiento y para evitar comportamientos indeseados.

¿Qué es una clase?


Una clase es algo abstracto que define la "forma" del objeto, se podría hablar de la clase como el molde
de los objetos.
En el mundo real existen objetos del mismo tipo, por ejemplo tu bicicleta es solo una mas de todas las
bicicletas del mundo. Entonces diríamos que tu bicicleta es una instancia de la clase "Bicicleta". Todas
las bicicletas tienen los atributos: color, cantidad de cambios, dueño y métodos: acelerar, frenar, pasar
cambio, volver cambio.
Las fabricas de bicicletas utilizan moldes para producir sus productos en serie, de la misma forma en
POO utilizaremos la clase bicicleta (molde) para producir sus instancias (objetos).
Los objetos son instancias de clases.
Ejemplo: Podríamos tener la clase Perro, una instancia de esta clase podría ser el objeto perro llamado
"Chicho". La clase Perro especificaría que todos los perros tendrían un nombre, color de pelo, una altura.
Mientras que la instancia "Chicho" contendrá valores específicos para cada uno de estos atributos.
Podemos definir a una clase como una plantilla que define variables y métodos comunes para todos los
objetos de cierto tipo.
Existe un lenguaje de modelado llamado UML mediante el cual podemos representar gráficamente todo
un sistema orientado a objetos utilizando rectángulos, líneas y otro tipo de símbolos gráficos. Según
UML, la clase "Cuenta Bancaria" antes mencionada se representará gráficamente como sigue:

Mensajes
Un objeto por si solo no tiene mucho significado. Ejemplo: el objeto "bicicleta" no tiene mucho sentido si
no interactúa con un objeto "persona" que pedalee.
La interacción entre objetos se produce mediante mensajes. Los mensajes son llamados a métodos de un
objeto en particular.
Podemos decir que el objeto persona envía el mensaje "girar a la izquierda" al objeto bicicleta.
Los mensajes pueden contener parámetros. Por ejemplo teniendo un método en la clase bicicleta
llamado "Girar" que recibe como parámetro la dirección (derecha o izquierda).
Un mensaje esta compuesto por los siguientes tres elementos:
1. El objeto destino, hacia el cual el mensaje es enviado
2. El nombre del método a llamar
3. Los parámetros solicitados por el método
Beneficios de los mensajes
Como todo lo que un objeto puede hacer esta expresado mediante métodos, el envío de mensajes
soporta todas las posibles interacciones entre objetos.
Para enviar o recibir mensajes, los objetos no necesitan formar parte del mismo proceso, ni siquiera de la
misma máquina.

Herencia
Los sistemas orientados a objetos permiten definir clases en término de otras clases. Por ejemplo ovejero
alemán y caniche son diferentes razas de perros. En la terminología orientada a objetos "Ovejero
Alemán" y "Caniche" son subclases de la clase perro. De forma similar Perro es la superclase de
"Ovejero Alemán".
Entonces tenemos la siguiente jerarquía de clases:

En UML se representa la relación de herencia mediante una flecha.


Cada subclase hereda los atributos de la superclase. Tanto la clase "Ovejero Alemán" como "Caniche"
tendrán los atributos nombre, color de pelo, altura definidos en la clase Perro.
Una subclase no esta limitada únicamente a los atributos de su superclase, también puede tener
atributos propios, o redefinir algunos definidos anteriormente en la superclase.
No se esta limitado tampoco a un solo nivel de herencia, se pueden tener todos los que se consideren
necesarios.
Ejemplo:
Clase Empleado hereda de clase Persona, y esta a su vez hereda de clase Animal.
Las subclases proveen un comportamiento especializado sobre los elementos comunes provistos por las
superclases. Gracias a la herencia, los programadores pueden rehusar código una y otra vez.

You might also like