Você está na página 1de 45

Programación Orientada a

Objetos
Conceptos Generales
Paradigmas de la programación

• Programación imperativa
• Programación estructurada y modular
• Programación orientada a objetos

• Programación funcional
• Programación lógica …..
Programacion modular y estructurada:
Ventajas
- Facilita el desarrollo
- Evita la repeticion de trabajo
- La tarea de programar es dividido en
modulos independientes
- Diseño Top-Down
- Facilita el mantenimiento
- Claridad de codigo
- Independencia del modulo

- Facilita la reutilizacion
Programacion modular y estructurada:
Desventajas

- Fuerte acoplamiento
- Confusion en el uso de globalidad o localidad de variables
- La importacion de metodos y no de estructuras
- Extensiblidad limitada
La Programacion Orientada a Objetos trabaja asi:

Todo el programa esta construido en base a


diferentes componentes (objetos), cada uno tiene
un rol especifico y todos los componentes pueden
comunicarse entre ellos de formas predefinidas.
Todo objeto del mundo real tiene dos partes:
- Caracteristicas (Atributos)
- Comportamiento (Metodos)
Cada uno pertenece a una clase especifica

Class Figura
.........
Class Automovil
.........
Class Perro
........
Por qué la orientación a
objetos
O La técnica orientada a objetos sigue con
frecuencia el mismo método que
aplicamos en la resolución de problemas
de la vida diaria.
O El análisis y diseño orientado a objetos
modela el mundo en términos de objetos
que tienen estado y comportamiento, y
eventos que activan operaciones que
modifican el estado de esos objetos.
Algunos beneficios de la
orientación a objetos
 Reutilización. Permite la reusabilidad de código
empleando menos tiempo de desarrollo.
O Integridad. Los mecanismos de encapsulación
protegen sus propios componentes.
O La forma de pensar en objetos es más natural. El
diseñador piensa en términos de objetos y no en
detalles de bajo nivel.
O Programación más sencilla. Los programas se crean
a partir de piezas pequeñas.
Otros beneficios de la
tecnología OO
O Los métodos de los objetos pueden ser polimórficos, es
decir, se “comportan” de distintas maneras.
O Es más sencillo modificar código existente, cada clase
efectúa sus funciones independientemente de las
demás.
O Se construyen clases cada vez más complejas a partir
de otras más sencillas ya existentes.
O Estabilidad de los modelos respecto a entidades del
mundo real.
Motivos que han conducido al
éxito la tecnología de objetos
O Avances en arquitectura de computadores
O Avances en lenguajes de programación
(Smalltalk, C++, Java, Python ...).
O Ingeniería del software (modularidad,
encapsulado de la información, proceso de
desarrollo incremental)
O Los límites de la capacidad de gestionar la
complejidad de los sistemas solo con técnicas
de descomposición algorítmica
Qué es la Programación
Orientada a Objetos
O Organización de los programas de manera que representan
la interacción de las cosas en el mundo real.
O Un programa consta de un conjunto de objetos.
O Los objetos son abstracciones de cosas del mundo real.
O Cada objeto es responsable de unas tareas.
O Los objetos interactúan entre sí por medio de mensajes.
O Cada objeto es un ejemplar de una clase.
O Las clases se pueden organizar en una jerarquía de
herencia.

La programación OO es una simulación de un modelo del


mundo real.
Una manera de ver el mundo
Paradigma orientado a
objetos
En el paradigma de la orientación a objeto, un
sistema se concibe como un conjunto de objetos
que se comunican entre si mediante mensajes.

Objetos + Mensajes = Programa.

Mediante este modelo se construyen más fácilmente


sistemas complejos a partir de componentes
individuales.
¿Qué es un Objeto?
O Las personas tenemos una idea clara
de lo que es un objeto: conceptos
adquiridos que nos permiten sentir y
razonar acerca de las cosas del
mundo. Un objeto podría ser real o
abstracto, por ejemplo una
organización, una factura, una figura
en un graficador, una pantalla de
usuario, un avión, un vuelo de avión,
una reservación aerea, etc.
Software Orientado a Objetos

O Un objeto es cualquier
cosa, real o abstracta,
acerca de la cual
almacenamos datos y los
métodos que controlan
dichos datos.

 Un objeto puede estar compuesto por otros objetos y


estos a su vez por otros más. Esta estructura nos
permite construir objetos muy complejos.
Programación orientada a
objetos

O La programación
orientada a
objetos (POO)
encapsula datos
(atributos o
propiedades) y
métodos
Clases y objetos
O Una clase es una descripción generalizada
de un conjunto de objetos similares.
O Es la descripción de un conjunto de objetos
que comparten los mismos atributos,
operaciones, relaciones y semántica.
O Todos los objetos son ejemplares de una
clase.
O Un objeto es una instancia o variable de
una clase. Un objeto se distingue de otros
miembros de la clase por sus atributos.
Ejemplo de clases y
objetos
O Clase:
Coche

 Objeto: Ferrari
Ejemplo de objeto con sus
métodos y propiedades
O Propiedades o atributos
O Tipo de pantalla
O Espacio de memoria
O Cantidad de tonos
O Tipo de antena
O Cantidad de idiomas, etc.
O Métodos o
comportamientos
O Iniciar alarma
O Asignar tonos
O Registrar llamadas
Superclase: Teléfono O Iniciar Juego
O Utilizar Calculadora
Clase: Teléfono Celular O Enviar mensajes, etc
Subclase: Teléfono Celular Digital
Tipos Abstractos de Datos (TAD)
Abstracción
O Es el conocimiento que se tiene de una cosa
prescindiendo de los detalles que le rodean.
O La abstracción localiza y oculta los detalles
de un modelo o diseño para generar y
manipular objetos.
O Conocemos un objeto viéndolo,sabemos
qué es, sin necesidad de ver su interior, su
implementación o su forma de construcción.
Tipos de datos

Algunos tipos de datos que se encuentran en los lenguajes


de programación son:
•int
•float
•double
•char
•cadena de caracteres(String)
…….
TAD

Es un modelo compuesto por una colección de


operaciones definidas sobre un conjunto de datos.
Por tanto un TAD consiste en:

• Estructura de datos: que almacena información


para representar un determinado concepto
• Funcionalidad: conjunto de operaciones que se
pueden realizar sobre el tipo de datos
Tipos Abstractos de Datos:

• Se destacan los detalles (normalmente pocos) del


comportamiento observable (tipo) que es estable.
• Se ocultan los detalles (numerosos) de la
implementacion, propensa a cambios.

Ej:
Clase Matriz, Lista, Vector, Complejo,
Fraccion,…etc.
¿Que es una instancia de TAD?

Una instancia de TAD, o simplemente instancia,


es un elemento que pertenece al TAD.

El TAD es abstracto mientras que la instancia es


concreta (es el objeto de la clase)

Ej:
Fraccion f1,f2
Matriz x1
ListaDoble a,b,c
TAD Complejo

Un número complejo es un objeto matemático


que se puede representar como una pareja
ordenada, por ejemplo (2,3) o como el polinomio
2 + 3i , donde i es la unidad básica de los números
imaginarios. Tienen operaciones como las de
suma, resta entre otras. Si tenemos dos complejos
c1=(r1,i1) y c2=(r2,i2), las operaciones se pueden
definir de la siguiente manera:

C1 + C2 = (r1 + r2, i1 + i2)


C1 - C2 = (r1 - r2, i1 - i2)
¿Cómo es la estructura del TDA?

El TDA Complejo contiene dos partes: la real y la


imaginaria.

¿Cuáles son sus operaciones?

sumar: Complejo x Complejo → Complejo


restar: Complejo x Complejo → Complejo
obtenerReal: Complejo → R
obtenerImaginario: Complejo → I
Resumen de conceptos de POO
O Un programa orientado a objetos es un conjunto de clases
que describe el comportamiento de los objetos del sistema
O Los objetos se comunican mediante mensajes
O Cada objeto tiene su propio estado, que consta de otros
objetos
O Cada objeto es un ejemplar de una clase (agrupación de
objetos)
O Todos los objetos que son ejemplares de una misma clase
pueden realizar las mismas acciones
O Las clases están organizadas en una jerarquía de herencia

Você também pode gostar