Está en la página 1de 47

INFORMATICA 5120

INFORMATICA 5130
INTRODUCCION A LA
PROGRAMACION
ORIENTADA A OBJETOS
ORIENTACION A OBJETOS

Es el conjunto de disciplinas (ingeniería)


que desarrollan y modelizan software que
facilitan la construcción de sistemas
complejos a partir de componentes.
EVOLUCION HACIA LA
ORIENTACION A OBJETOS

• Crisis del software


El Software es:
– Caro
– Poco fiable
– Escaso
• Complejidad del software
IMPORTANCIA DE LA
ORIENTACION A OBJETOS
• Es especialmente adecuada para realizar
determinadas aplicaciones, sobre todo la
realización de prototipos y simulación de
programas.
• Los mecanismos de encapsulación de la
POO soportan un alto grado de
reutilización de código, que se incrementa
por sus mecanismos de defensa.
IMPORTANCIA DE LA
ORIENTACION A OBJETOS (2)

• En el entorno de las bases de datos, la


OO se adjunta bien a los modelos
semánticos de datos.
• Interfaces de usuario gráficos (por iconos)
y visuales.
PROGRAMACION ORIENTADA
A OBJETOS

• Es un nuevo paradigma de programación


basado en la orientación a objetos.
• Un paradigma es un conjunto de teorías,
estandar y métodos que juntos
representan un medio de organización del
conocimiento, es decir, un medio de
visualizar al mundo.
ABSTRACCION
• Es una propiedad que permite representar
las características esenciales de un
objeto, sin preocuparse de las restantes
características.
• Es la capacidad para encapsular y aislar
la información del diseño y ejecución.
ABSTRACCION (2)

• Es el mecanismo más importante para


hacer frente a la complejidad del software.
• Es la clave para el diseño del buen
software.
MECANISMOS DE LA
ABSTRACCION
• Procedimientos
• Módulos
• Tipos abstractos de datos
• Objetos
PROCEDIMIENTOS

Conjunto de rutinas que permitían tareas


que se ejecutaban rápidamente, o eran
ejecutadas solo con ligeras variaciones,
que se reunían en una entidad y se
reutilizaban, en lugar de duplicar código.
MÓDULOS

Es una técnica que proporciona la


posibilidad de dividir sus datos y
procedimientos en una parte privada (sólo
accesible dentro del módulo) y otra parte
pública (accesible fuera del módulo).
TIPOS ABSTRACTOS DE DATOS

Es un tipo de dato definido por el


programado que se puede manipular de
un modo similar a los tipos de datos
definidos por el sistema.
PROPIEDADES FUNDAMENTALES
DE LA PROGRAMACION ORIENTADA
A OBJETOS

• Abstracción
• Encapsulación
• Modularidad
• Jerarquía
• Herencia
ENCAPSULACION

Es la propiedad que permite asegurar que


el contenido de la información de un
objeto está oculta al mundo exterior.
MODULARIDAD

Es la propiedad que permite subdividir una


aplicación en partes más pequeñas
(llamadas módulos), cada una de las
cuales debe ser tan independiente como
sea posible de la aplicación en sí y de las
restantes partes.
JERARQUIA

Es la propiedad que permite una


ordenación de las abstracciones.

Se usa para establecer la relación entre


objetos.
HERENCIA
Es la propiedad que permite que un objeto
comporta la estructura o comportamiento
definido en uno o más objetos.

Es una propiedad que permite que un


objeto sea construido a partir de uno o
más objetos.
OTRAS PROPIEDADES DE LA
PROGRAMACION ORIENTADA
A OBJETOS

• Polimorfismo
• Concurrencia
• Persistencia
• Genericidad
• Manejo de Excepciones
POLIMORFISMO
Es la propiedad que permite referirse a
objetos de clases diferentes mediante el
mismo elemento de programa y realizar la
misma operación de diferentes formas,
según sea el objeto que se referencia en
ese momento.
CONCURRENCIA
Es la propiedad que permite la creación
de procesos paralelos independientes del
sistema operativo.

Esta propiedad simplifica la


transportabilidad de un sistema de tiempo
real de una plataforma a otra.
PERSISTENCIA

Es la propiedad que permite que los


objetos puedan permanecer aún después
de la ejecución de un programa.
GENERICIDAD

Es la propiedad que permite la creación


de objetos y clases, mediante el uso de
plantillas, los cuales puedan soportar un
alto grado de reusabilidad.
MANEJO DE EXCEPCIONES

Es la propiedad que permite detectar,


informar y manejar condiciones
excepcionales utilizando construcciones
de un lenguaje de programación.
OBJETOS Y CLASES
OBJETO
• Es una instancia de un elemento de la
vida real.
• Es la abstracción de un elemento.
• Es una entidad que contiene los atributos
que describen el estado de un elemento
del mundo real y las acciones que se le
asocian.
OBJETO CON RESPECTO
A LA POO

Un objeto es una combinación o


encapsulación de datos y procedimientos
o funciones que manejan dichos datos.
PARTES DE UN OBJETO
• ATRIBUTOS:
Datos o variables que caracterizan el estado
de un objeto

• METODOS:
Procedimientos o acciones que cambian el
estado de un objeto.
MENSAJES
• Se utilizan para la comunicación entre
objetos.
• Cuando un objeto recibe un mensaje,
responde a éste ejecutando una acción
(método)
• Al conjunto de mensajes a los que puede
responder un objeto se le llama
PROTOCOLO.
CATEGORIAS DE OBJETOS
• Cosa tangibles
• Roles o papeles.
• Organizaciones
• Lugares
• Incidentes
• Interacciones
• Especificaciones
CLASE
• Es la descripción de un conjunto de
objetos.
• Es una colección de objetos similares.
• Es equivalente a los modelos o plantilla,
ya que ellos describen como se
construyen ciertos tipos de objetos.
HERENCIA
HERENCIA
• Es una relación entre clases, en donde
una clase comparte la estructura o
comportamiento definida en una o más
clases.
• Es el corazón de la programación
orientada a objetos y constituye el bloque
fundamental de construcción para
reutilizar el código.
HERENCIA
• Permite crear muchas clases que son
similares entre sí, sin tener que rescribir
cada vez las partes que son similares.
• Esta propiedad permite combinar varias
clases en una de ellas o modificar una
clase existente sin modificar realmente el
código original.
JERARQUIA DE LA HERENCIA

• Superclase
• Subclase
SUPERCLASE
• Es una clase que sirve como padre o raíz
de un nuevo conjunto de clases.
• Esta clase recibe también los nombres de
clase base o clase padre.
SUBCLASE
• Es una clase que surge de una o otras
clases que le dan origen.
• Esta clase recibe también los nombres de
clase derivada o clase hija.
EJEMPLO DE HERENCIA
Figura _ cerrada
Es un Es un

Polígono Elipse
Es un Es un
Es un

Triangulo Cuadrilátero Círculo

Es un Es un
Es un

Rombo Cuadrado Rectángulo


TIPOS DE HERENCIA

• Herencia simple
• Herencia múltiple
HERENCIA SIMPLE
• Es cuando una clase sólo se deriva de
otra clase.
• Es cuando una clase sólo posee un solo
padre.
HERENCIA SIMPLE
Persona

Empleado Estudiante

Vendedor Ingeniero Secretaria Graduado Posgraduado

Director de
Gerente
proyecto

Director
General
HERENCIA MULTIPLE
• Es el mecanismo que permite a una clase
heredar de más de una clase.
• Permite que se puedan combinar
diferentes clases existentes para producir
nuevas clases.
HERENCIA MULTIPLE
Compañía Fabricante Ventana Ventana
Japonesa De motos De texto Con bordes

Fabricante de Ventana de texto


Motos japonesas Con borde

Robot Policía

Robocop
TIPOS DE HERENCIA MULTIPLE

• Selectiva. Es una propiedad que


permite heredar solo algunas cualidades
de la clase base
• No selectiva. Es una propiedad que
permite heredar todas las
características de la clase base.
VENTAJAS DE LA
HERENCIA MULTIPLE
• Apoya la modelación de objetos en su dominio
del problema.
• Sirve para añadir persistencia a los objetos.
• Alto grado de flexibilidad, simplicidad y
elegancia en la definición de nuevas clases.
• Favorece la reutilización
• Permite el cambio de la implementación de
clases
DESVENTAJAS DE LA
HERENCIA MULTIPLE
• Ambigüedad, ya que produce confusión y
comportamiento impredecible.
• Aumento de tiempo auxiliar que se añade
a los programas.
• No es soportada por todos los lenguajes.
• Se puede producir el problema de la
herencia repetida.
HERENCIA REPETIDA

Este problema ocurre cuando una clase


hereda de dos o más superclases que a
su vez hereden de la misma superclase.
HERENCIA REPETIDA

Persona

Estudiante Trabajador

Estudiante
Trabajador

También podría gustarte