Sunteți pe pagina 1din 25

Introduccin a OOP

Programacin Orientada a Objeto


Evolucin
Programacin no Estructurada,
Programacin procedimental,
Programacin modular y
Programacin orientada a objetos.
Programacin no Estructurada

Un solo bloque principal


Variables globales

Cuando se repiten las


secuencias
Procedimientos
Programacin Procedimental
llamada de procedimiento
Variables globales vs
Locales y parmetros
Necesidad de Modulos
Programacin Modular
Procedimientos con una
funcionalidad comn
Mdulo puede contener sus
propios datos
Espacio de Nombres
Problemas?
Problemas
Creacin y Destruccin Explcitas
Datos y Operaciones Desacoplados
Omisiones en la Consistencia de Datos
Programacin Orientada a Objetos
Los objetos del programa interactan mandando mensajes

Contienen el Qu Datos
Contienen el Cmo Mtodos
Manejar el Mundo Real
proceso de modelado se llama abstraccin

los datos que son afectados


las operaciones que son identificadas
Manejar el Mundo Real
proceso de modelado se llama abstraccin

los datos que son afectados


las operaciones que son identificadas
Construccin de un Programa OOP

Visin general:
Objetos de diferentes clases que piden servicios a otros objetos.
Cada servicio ofrecido se realizar el guin marcado por un mtodo utilizando la
informacin enviada en el mensaje
. Los objetos son entes con informacin y funcionalidad.

El diseo orientado a objetos consistir en


1: Delimitar las clases de objetos que existirn en el universo de nuestro
programa, y cmo se pueden relacionar los objetos de las diferentes clases entres
s.
2: Implementar los mtodos y los atributos necesarios.
3: Construir un programa con las instrucciones que instancian los objetos
necesarios para iniciar la ejecucin (situacin inicial del universo), inicializando
estos objetos a los estados necesarios para que el sistema comience a funcionar
correctamente.
Cules son las ventajas de un lenguaje orientado a

objetos?

Fomenta la reutilizacin y extensin del cdigo.


Permite crear sistemas ms complejos.
Relacionar el sistema al mundo real.
Facilita la creacin de programas visuales.
Construccin de prototipos
Agiliza el desarrollo de software
Facilita el trabajo en equipo
Facilita el mantenimiento del software
Caractersticas de Lenguaje OOP

Reutilizacin
Responsabilidades y contratos
Abstraccin, ocultacin y encapsulamiento
Herencia
Polimorfismo
Abstraccin
Diseo orientado a objetos provee la abstraccin
Polimorfismo
Ocultacin
Principio de ocultacin
mbitos
Encapsulamiento
Empaquetar informacin y funcionalidad, (Que y como)
La Clase

Los objetos son de una clase y las clases son plantillas que
definen un comportamiento comn a todos los objetos de la
misma.
Las clases amplan el concepto de TDA con la inclusin de la
herencia

Clase como patrn


Responsabilidades/contratos
Diferencia entre objeto y clase
Herencia
Clase abstracta
La Clase
UML
Atributos Punto
Mtodos
# int x
# int y
De clase y de instancia
Clases estticas + void pinta()

Principio de ocultacin:mbitos
Pblico
Privado
Protegido (se ver con la herencia)
El Objeto
Objeto
Qu es? (datos y procesamiento)
Concrecin de clase
Estado concreto y propio (no compartido)
Se comparten los atributos de clase (especie de globales)

Consciencia de s mismo: this


Consciencia de su clase
Ciclo de vida

Constructor
Vida(sucesin de Estados)
Destructor
El Objeto II

Mensaje
Invocacin de mtodo
Mtodo
- Cdigo que indica cmo debe responder a un mensaje
De clase
De instancia
Abstracto (qu pasa con la instanciacin?)(clase abstracta)
Final

Atributo
Dato que ayuda a mantener el estado de un objeto.
De clase
De instancia
Valores por defecto
Constantes
Las Relaciones entre objetos

relacin "parte-de".

relacin "tiene-un(a)".
Errores comunes en Diseo OOP

Clases que hacen modificaciones directas a otras clases


Clases con demasiada responsabilidad
Clases sin responsabilidad
Clases con responsabilidades que no se usan
Nombres engaosos
Responsabilidades desconectadas
Uso inadecuado de la herencia
Funcionalidad repetida
La Herencia
Definicin:
Reutilizacin y encapsulamiento: programacin por responsabilidades,
delegacin.
Una clase A hereda de otra B cuando los objetos de A son una
especializacin de B (relacin es-un)

Efectos bsicos:

Una Subclase hereda los atributos y mtodos de su padre


Un mtodo puede ser sobreescrito en una subclase cambiando slo ese
comportamiento
Un mtodo heredado puede ser llamado en una instancia de subclase y
ejecutar el comportamiento heredado
La Herencia

Dibujo establece las


caracteristicas bsicas y
comportamiento comn
Circulo aade caracteristicas y
comportamiento asociado a estas
carcteristicas

Los atributos de Dibujo sn accesibles desde Circulo


Los atributos de Circulo y Dibujo no son accesibles desde otras clases que
no estn por debajo de su herencia
La Herencia multiple

Dibujable y Punto establecen las


caracteristicas bsicas y
comportamiento comn
Circulo aade caracteristicas y
comportamiento asociado a estas
carcteristicas

Los atributos de Dibujo y punto sn accesibles desde Circulo


Circulo puede utilizar mtodos de cualquiera de sus ancestros:

Circulo miCirculo = new Circulo();


miCirculo.pinta();
miCirculo.Dibuja();
miCirculo.area();
La Herencia multiple vs Interfaces

Si no se tiene cuidado pueden establecerse


ambiguedades con metodos y atributos heredados de
ms de un ancestro Necesidad de esecficar el ambito
del espacio de nombre (nombrar que clase
especificamente contiene el mtodo).

Otros lenguajes que no disponen de H. Multiple


implementan el uso de Interfaces: Similar a una clase
completamente abstracta, slo determina la obligacin
de establecer un conjunto de prototipos.
Provee generalizacin de clases por comportamiento
Permiten a su vez heredar de otros interfaces
Polimorfismo

Varias formas = distintos comportamientos dependiendo de las clases.


Principio de abstraccin.
Ampla el concepto de procedimiento y suaviza la asignacin de tipos fuerte.

Significa al menos:
1) Sobrecarga de operadores
2) Sobrecarga de funciones
3) Tipos genricos o parametrizacin de tipos
4) Ampliacin de las reglas de compatibilidad de tipos y de la
asignacin en lenguajes de tipos
5) Polimorfismo de mensajes
Polimorfismo

Contexto: En todos los casos existe un contexto que determina el


valor semntico exacto de cada identificador.
Esttico: (en tiempo de compilacin y enlazado)
Compilacin/enlazado:
Contexto = tipo definido en la declaracin de objetos
Contexto = tipo de los identificadores
Contexto = tipo de operandos
Contexto = nmero y tipo de los argumentos
comprobacin de asignaciones
comprobacin de operaciones (funciones, operadores, mtodos)
implementados en las fuentes disponibles
Dinmico: (en tiempo de ejecucin)
Contexto = clase a la que pertenece el objeto, se resuelve en el momento de la
utilizacin (de mtodo o de variable). Slo es posible conocer la clase concreta
en tiempo de ejecucin.
Polimorfismo: Ejemplos

Varias funciones con el mismo nombre en una clase y distinto nmero de


parmetros/tipos.
Llamadas a mtodos en una superclase no conocida en tiempo de compilacin
con diferentes implementaciones en las subclases que puede contener
Sobrecarga de operadores en la que los operandos pueden ser diferentes
clases.

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