Está en la página 1de 9

02/09/2009

Introducción

¿QUÉ ES LA PROGRAMACIÓN
ORIENTADA A OBJETOS?

¿Qué es la Programación Orientada


a Objetos?
 Es una manera de construir Software basada
en un paradigma.
 Propone resolver problemas de la realidad
identificando objetos y relaciones de
colaboración entre ellos.
 El Objeto y el mensaje son sus elementos
fundamentales.
 La OOP se basa en la idea natural de la
existencia de un mundo lleno de objetos
POO

¿Qué es la Programación Orientada


a Objetos?
 Un lenguaje se dice que es orientado a objetos, si
los elementos esenciales de construcción del
software son objetos y mensajes.
 Dado que en la realidad resolvemos problemas a
través de que los diferentes entes del mismo
colaboren, una vez que hemos encontrado un
mecanismo para resolver un problema,
utilizamos éste para alcanzar el mismo resultado
exitoso una y otra vez (reutilización).
POO

1
02/09/2009

¿Qué es una clase?

 Las clases son declaraciones de objetos.


 Se podrían definir como abstracciones de
objetos. Esto quiere decir que la definición de
un objeto es la clase.
 Cuando programamos un objeto y definimos
sus características y funcionalidades en
realidad lo que estamos haciendo es
programar una clase.
POO

¿Qué es una clase?

 Construcción Estática
 Describe:
 Comportamiento común
 Atributos [estado]
 Estructura de datos
 Incluye:
 Datos
 Funciones o métodos
POO

Constructor y Destructor

 Dos métodos de las clases


 Constructor, inicializa valores
 Destructor, libera recursos al finalizar la vida de
una instancia de una clase creada en memoria
 Existen constructores y destructores por defecto
 El constructor es llamado cuando la clase
comienza a ocupar un lugar en memoria, es
decir, al ser instanciada. Se encarga de inicializar
valores, e incluso muchas veces de llamar a otros
constructores de otras clases.
POO

2
02/09/2009

Constructor y Destructor

 El destructor es un método que se llama al


finalizar la vida de la instancia de la clase,
para liberar recursos.
 Cualquiera de los dos métodos tienen que
formar parte de las clases.
 En clases mas complejas, el desarrollador
deberá implementar estos métodos. Muchas
veces, los constructores reciben parámetros
con los valores con los que la clase debe
inicializarse.
POO

¿Que es un objeto?

 Instancia de una clase


 Cuando creamos una instancia tenemos que
especificar la clase a partir de la cual se creará. Esta
acción de crear un objeto a partir de una clase se llama
instanciar
 Un objeto posee:
 Identidad: Relación única entre el objeto del modelo y
el ente de la realidad que representa.
 Comportamiento: Resuelve un conjunto particular de
problemas a través de su protocolo.
 Estado: Almacena información
 Fija
 Variable
POO

Pilares de POO

Herencia Polimorfismo Encapsulamiento

Abstracción
POO

3
02/09/2009

Abstracción

 Es la capacidad de un objeto de cumplir


sus funciones independientemente del
contexto en el que se lo utilice
 Se enfoca [depende] en lo que es
importante
 Ignora [no depende] de lo que no es
importante
 Utiliza la encapsulación para reforzar la
abstracción
POO

Abstracción

 Un objeto siempre expondrá sus mismas


propiedades y dará los mismos resultados a
través de sus eventos, sin importar el ámbito
en el cual se lo haya creado.
 Es poder generalizar un objeto como tipo de
dato, con sus características y
comportamientos comunes.
POO

Encapsulamiento

 Esta característica es la que denota la


capacidad del objeto de responder a
peticiones a través de sus métodos sin la
necesidad de exponer los medios utilizados
para llegar a brindar estos resultados.
 El método Saludar() del objeto “persona”,
siempre realizara el saludo, sin necesidad de
tener conocimiento de cuáles son los recursos
que ejecuta para llegar a brindar este
resultado.
POO

4
02/09/2009

¿Por qué Encapsulamiento?

 Dos grandes razones


 Control
 La responsabilidad en administrar el
comportamiento de clase sea solo del objeto que
implementa dicho comportamiento.
 Cambio
 Facilidad para manejar la complejidad, ya que las
Clases se ven como cajas negras donde sólo se
conoce el comportamiento pero no los detalles
internos.
POO

Encapsulamiento

 Los métodos
Acelera() son públicos:
son accesibles
desde fuera
velocidad
 Los datos son
privados:
Frena() accesibles
desde dentro

Controlador del Motor


POO

Atributos del Objeto

 Describen los objetos de forma individual.


 Atributos Objeto Reloj:
 Color: Azul
 Color Secundario: Verde
 Digital: Si
 Marca: Casio
 Cronómetro: Si
POO

5
02/09/2009

Herencia

 Es “un tipo de” relación


 Relación “es un”
 Entre Clases
 Va de la generalización a la especialización
 Clase base
 Clase derivada
 Hereda la implementación
POO

Herencia

 Es uno de los conceptos más cruciales en la POO.


 Básicamente consiste en que una clase puede
heredar sus variables y métodos a varias subclases
(la clase que hereda es llamada superclase o clase
padre).
 Esto significa que una subclase, aparte de los
atributos y métodos propios, tiene incorporados
los atributos y métodos heredados de la
superclase.
 De esta manera se crea una jerarquía de herencia.
POO

Herencia
Transporte

Acelera

Frena

Automóvil
POO

6
02/09/2009

Jerarquía de Clases
Transporte

Marítimo Aire Nieve Tierra

DentroAtmosfera FueraAtmosfera 1-Persona N-Personas


N-Personas
Canoa
Moto de Nieve

Avión Helicóptero
Transbordador Moto Auto
POO

Polimorfismo y Sobrecarga

 Polimorfismo: desconocimiento del cliente sobre


la clase concreta del objeto que brinda el servicio.
Esto me da libertad de intercambiar libremente el
objeto servidor.
 Sobrecarga: Definir más de un método por cada
mensaje, los tipos de los argumentos ayudan a
decidir a qué mensaje se invoca.
 Tareas similares son realizadas por métodos con
mismo nombre
 Simplifican la tarea del desarrollador, al no tener
que recordar distintos nombres para
comportamientos iguales.
POO

Polimorfismo

 La definición del método reside en la


clase base.
 La implementación del método reside en
la clase derivada
 La invocación es resuelta al momento de
ejecución
 Early binding
 Late binding
POO

7
02/09/2009

Clase Base Abstracta

 Existen solamente para que se deriven de ellas.


 No tiene sentido crear una instancia de este tipo
de clases.
 Métodos abstractos.
 Los métodos abstractos son declarados pero no
implementados. Si existe un método abstracto
entonces debemos declarar la clase como
abstracta, y al declararla como tal no se pueden
crear instancias de ella.
POO

Clase Base Abstracta

 Existen solamente para que se deriven de ellas.


 No tiene sentido crear una instancia de este tipo
de clases.
 Métodos abstractos.
 Los métodos abstractos son declarados pero no
implementados. Si existe un método abstracto
entonces debemos declarar la clase como
abstracta, y al declararla como tal no se pueden
crear instancias de ella.
POO

Clase Base Abstracta

 Sirven para definir conceptos incompletos, que


deben ser completados en las subclases de la clase
abstracta. En el ejemplo, la clase transporte no
puede ser instanciada, salvo desde alguna clase
heredera, que implemente los métodos acelerar y
frenar.

Automóvil
Color
Asientos
Transporte
Acelera
frena ?
POO

8
02/09/2009

FIN

También podría gustarte