Sunteți pe pagina 1din 2

Programa de Tecnología en Cómputo

Curso Intersemestral Java Básico Junio 2010


Resumen Tema 1: Programación Orientada a Objetos

• La metodología de programación orientada a objetos (POO) busca modelar un problema


real por medio de entidades abstractas llamadas objetos.
• Un objeto está definido por su estado (variables o atributos) y por su comportamiento
(métodos), es decir, responde a las preguntas ¿qué características tiene? y ¿qué operaciones
puede llevar a cabo?
Ejemplo:
Una cuenta de banco se puede modelar como un objeto, con los siguientes atributos y métodos:
Atributos: saldo, tasa de interés
Métodos: depositar(), retirar()
• Como se puede ver en este ejemplo, los métodos pueden modificar el estado del objeto (las
operaciones depositar y retirar modifican el saldo de la cuenta).
• Todo objeto es instancia de una clase.
• Una clase, entonces, funge como “modelo” o “plantilla” a partir de la cual se crean objetos
que comparten los mismos atributos y métodos, pero poseen su propio estado a través del
tiempo.
Ejemplo:

Clase Objetos

CUENTA DE BANCO otra_Cuenta


mi_Cuenta Saldo: $173.21
saldo Saldo: $400 Tasa: 2% anual
tasa_de_interes Tasa: 5% anual

depositar()
retirar()

cuenta_de_Juan
Saldo: $2728.34
Tasa: 1% anual

• Un mensaje sirve para ejecutar (invocar) un método del objeto. Se requiere: el objeto al cual
mandar el mensaje, el método a invocar, los parámetros que el método requiere. Ejemplo:
Para retirar $200 de la cuenta de Juan, se manda al objeto cuenta_de_Juan el mensaje
“retirar”, con el parámetro 200.
• La metodología de POO se basa en 4 pilares: abstracción, encapsulamiento, herencia,
polimorfismo.
• La abstracción no es otra cosa que el proceso por el cual un problema real se transforma en un
problema computacional, mediante su modelado por medio de clases y objetos.
• El encapsulamiento nos permite ver al objeto como una caja negra (recibe una entrada y nos
da una salida). Es decir, el objeto expone al “mundo exterior” únicamente el nombre de sus
métodos, para que le puedan enviar mensajes, pero “esconde” sus componentes y
funcionamiento interno. Idealmente esto hace que sus atributos sean accesibles únicamente por
medio de los métodos propios de la clase.
• La herencia es la capacidad de extender una clase. Es decir, la capacidad de crear una clase
que automáticamente “hereda” todos los miembros de otra, y le agrega una nueva funcionalidad
específica.
Ejemplo:

VEHÍCULO VEHÍCULO DE
GASOLINA
velocidad
tanque
avanzar()
girar() llenarTanque()

La clase Vehículo de Gasolina extiende la clase Vehículo, proporcionando una nueva


funcionalidad: introduce el concepto de un tanque de gasolina, pero al heredar de la clase
Vehículo, contiene además la funcionalidad de la clase original, es decir, el atributo velocidad,
y los métodos para moverse. Entonces, la clase Vehículo de Gasolina tiene en total 2 atributos y
3 métodos. (Notar que en el diagrama de clases, la flecha siempre apunta a la clase padre).
• En Java no se permite la multiherencia (una clase sólo puede tener una clase padre).
• El polimorfismo es la capacidad de un objeto de una subclase de ser considerado o manipulado
como si fuera un objeto de una de sus superclases. Está muy ligado a la herencia.
Ejemplo:
Sea la siguiente jerarquía de clases:

Ser_Vivo

Animal Planta

De acuerdo a la relación “es un”, un Animal es un Ser Vivo, y una Planta también es un Ser
Vivo. Esto significa que si tengo un objeto tipo “Animal” y uno tipo “Planta”, ambos los puedo
manipular como si fueran un objeto tipo “Ser Vivo”. El “Ser Vivo” podría tener el método
“respirar”. Aunque las plantas y los animales respiran de diferentes maneras, puedo mandarle el
mensaje “respirar” a un objeto “Ser Vivo” aunque yo no sepa específicamente si es un animal o
una planta, y sin embargo cada objeto llevará a cabo su tipo de respiración correcta según le
corresponda.

Elaboró: Julián Solórzano Soto

S-ar putea să vă placă și