0% encontró este documento útil (0 votos)
16 vistas37 páginas

01_Introduccion

El documento presenta una introducción a la programación orientada a objetos (POO), destacando sus conceptos fundamentales como objetos, clases, herencia, polimorfismo y encapsulamiento. Se discuten las ventajas de la POO, incluyendo la reusabilidad y mantenibilidad del código, así como la importancia de los mensajes para la interacción entre objetos. Además, se mencionan recursos recomendados para profundizar en el tema y se establece una comparación entre los paradigmas de programación imperativa y orientada a objetos.

Cargado por

Cesar Mendoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas37 páginas

01_Introduccion

El documento presenta una introducción a la programación orientada a objetos (POO), destacando sus conceptos fundamentales como objetos, clases, herencia, polimorfismo y encapsulamiento. Se discuten las ventajas de la POO, incluyendo la reusabilidad y mantenibilidad del código, así como la importancia de los mensajes para la interacción entre objetos. Además, se mencionan recursos recomendados para profundizar en el tema y se establece una comparación entre los paradigmas de programación imperativa y orientada a objetos.

Cargado por

Cesar Mendoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 37

Programación

Orientada Objetos
Recursos

 Thinking in Java, 3rd ed., Bruce Eckel, Prentice


Hall
 Applying UML And Patterns 2d. Edition, Craig
Larman , Prentice Hall
 UML in a NutShell (1998), Sinan Sir Alhir ,
O'Reilly
 Java 2 - Programador Certificado, Antonio J.
Martin Sierra (Curso Práctico)
 Cómo programar en Java, Deitel & Deitel,
Prentice Hall
El paradigma OO
 Orientación a objetos
Reusabilidad
Confiabilidad
Robustez
Extensibilidad
Mantenibilidad

 En todos los niveles del proceso de


desarrollo: Análisis, diseño y programación
Programación
Orientada a
Objetos
Contenido de la clase
de hoy
• Introduccíón a la Orientación a objetos

• Introducción a la Programación
Orientada a Objetos
Ciclo de Vida de una
Aplicación
La base: Orientación a
Objetos
 ¿Qué es?
Paradigma: (¿Qué es un paradigma?)

Basado en objetos y clases

Aplicables al análisis, diseño y programación de


una solución
Un sistema software es un conjunto de objetos que
cooperan.
Paradigma OO
 Los lenguajes de programación proporcionan
mecanismos para implementar una filosofía o
paradigma de programación. Un paradigma es una
forma de entender y representar la realidad: un
conjunto de teorías, estándares y métodos que,
juntos, representan un modo de organizar el
pensamiento, es decir, un modo de ver el mundo.
Cada nuevo paradigma responde a una necesidad
real de nuevas formas de afrontar problemas. A
menudo un nuevo paradigma es creado como
respuesta a las deficiencias de paradigmas
anteriores.
Paradigmas de
Programación
 Un paradigma de programación es una
forma de conceptualizar en qué consiste
la ejecución de un programa y cómo
deben de estructurarse y organizarse
las tareas que se llevaran a cabo en esa
ejecución.A continuación describimos
dos de los principales paradigmas.
Paradigma imperativo Paradigma Orientado a Objetos

La programación imperativa es un El paradigma orientado a objetos (OO)


paradigma de programación que describe la define los programas en términos de
programación en términos del estado del comunidades de objetos.
programa y sentencias que cambian dicho
estado.
Los programas imperativos son un conjunto Los objetos con características comunes se
de instrucciones que le indican a la agrupan en clases
computadora cómo realizar una tarea.
Las recetas, por ejemplo, son conceptos Los objetos son entidades que combinan un
familiares similares en estilo a la estado (es decir, datos) y un
programación imperativa; cada paso es una comportamiento (esto es, procedimientos o
instrucción, y el mundo físico (la métodos). Estos objetos se comunican entre
computadora en el caso de la programación) ellos para realizar tareas.
guarda el estado.
La mayoría de los lenguajes imperativos de Es en este modo de ver un programa donde
alto nivel incorporan cuatro tipos básicos de este paradigma difiere del paradigma
sentencias: asignaciones, ciclos, imperativo o estructurado, en los que los
ramificaciones condicionales, y datos y los métodos están separados y sin
ramificaciones incondicionales. relación.
Ejemplos de lenguajes de programación Entre los lenguajes que soportan el
estructurados son C, Pascal y Ada. paradigma OO están Smalltalk, C++, Delphi
(Object Pascal), Java y C#.
La base: Orientación a
Objetos
Los objetos poseen comportamiento
(operaciones que son capaces de hacer o
mensajes a los que son capaces de reaccionar).

En esta materia nos concentramos en la


aplicación de la orientación a objetos a la
programación en Java
Programación orientada a
objetos
Ventajas
 Desarrollo más rápido
 Incremento en la calidad
 Mantenimiento más sencillo (Modularidad)
 Los cambios son más sencillos de hacer
 Reutilización de Software
 Sistemas que pueden evolucionar de una manera más
conveniente y sencilla (Extensibilidad)
 Reducción del riesgo en el desarrollo de sistemas
complejos porque la integración es más simple
 Naturalidad en la forma de encarar los problemas
POO: Conceptos
 Objeto
 Mensaje
 Clase
 Herencia
 Polimorfismo
 Encapsulamiento
 Interfaz
Objeto
• ¿Qué es?
○ Clave para entender el paradigma
orientado a objetos
○ Cualquier objeto de la vida real

• Características
○ Estado
○ Comportamiento
Un objeto es una
porción de software
combinada de variables
y métodos asociados
Objeto: ¿Qué podemos
representar?
• Objetos reales:
o Casas, perros, gatos, sillas, mesas, clubes de
fútbol, entidades de negocio, etc.
• Objetos abstractos:
o Eventos (Cambios de estado, cotización de
productos, etc), Cuenta Corriente

Desde el punto de vista de la programación,


un objeto es una variable.
Esquema visual de un
objeto de Software
Objeto: Una bicicleta
modelada con un objeto de
SOFTWARE
Objeto: Beneficios
• Modularidad El código fuente para un objeto
puede escribirse independientemente del código
fuente para otros objetos
• Encapsulamiento Al interactuar solo con los
métodos de un objeto, los detalles de su
implementación interna permanecen ocultos del
mundo exterior.
• Reutilización de código Si ya existe un objeto (tal
vez escrito por otro desarrollador de software),
puede usar ese objeto en su programa
Mensaje
• ¿Qué es?
• Formas de interacción y
comunicación entre objetos
• Un objeto de una clase
responde a cualquiera de los mensajes
definidos en la clase. Ej:
float x = unRectangulo.getX();
unRectangulo.mover(0, 20);
unRectangulo.dibujar();
Mensaje: Alguien
enviando mensajes a
una bicicleta
Mensaje: Beneficios
• El comporamiento de un objeto se expresa a través
de sus métodos (en vez de acceso directo a sus
variables)

• El paso de mensajes soporta todas las posibles


interacciones entre objetos

• Los objetos no necesitan estar en el mismo proceso


ni siquiera en la misma máquina para enviarse y
recibir mensajes unos con otros.
Clase
¿Qué es?

Prototipo,
Prototipo,plantilla
plantillaoo agrupador
agrupadordede
objetos
objetosque
quecomparten
compartencaracterísticas
característicasyy
comportamientos
comportamientoscomunes,
comunes,describe
describeunun
conjunto
conjuntodedeejemplares
ejemplaresconconpropiedades
propiedades
yycomportamientos
comportamientossimilares.
similares.
Una clase es una plantilla
o prototipo (blueprint)
que define las variables y
métodos comunes a los
objetos de cierto tipo
Clase: Esquema
Clase: Objetos como
Instancias
Clase
• Una clase se describe por:
o Nombre
o Cuerpo
o Interfaz: Operaciones (métodos, mensajes) que
manipulan el estado.
o Conjunto de atributos (datos) que definen el
estado.

• Desde el punto de vista de la programación una


clase es un tipo de dato (Ejs.: Rectangulo, Lista,
Cola, NumeroComplejo, etc.).
Clase: ¿Cómo son
diferentes a los objetos?
• Ustedes...
Herencia
• ¿Qué es?
Una relación entre Clases que
permite Generalizar o
Especializar las mismas

• Posibilidad de definir nuevas


clases a partir de clases
existentes compartiendo
características comunes.
Herencia

• Heredar (inherit)
• Redefinir (override)
• Crear una jerarquía
Herencia: Beneficios
• La subclases proveen especialización a los elementos
básicos comunes provistos por las super-clases

• La clase hija puede extender o redefinir (override) el


comportamiento de la clase padre.
o Extensión: Se añaden operaciones y/o atributos
(ej.: Volar en el caso de Ave).
o Redefinición: Se cambia la implementación de
alguna operación heredada (o se le da una
implementación si no la tenía).
Herencia: Beneficios

• En java, se dice que las clases EXTIENDEN a


su super-clase o clase padre

• Ej.
o Integer extends Number
o Number extends Object
o Manager extends Employee
o Employee extends Person
o Person extends Object
Interfaces
• ¿Qué es?
• Traducción literal: dispositivo que utilizan dos
entidades para interactuar.
• En POO, las interfaces son utilizadas por los objetos
no relacionados para interactuar
• En otros lenguajes OO a las interfaces se las suele
llamar protocolos
• En java, se dice que las clases IMPLEMENTAN
interfaces
Diferencia entre los
conceptos de clase e
interfaz
• El concepto de clase hace referencia a los
atributos y a las operaciones, junto con su
implementación.

• El concepto de interfaz hace referencia sólo a


los prototipos de las operaciones visibles.
Ejercicio
• Los objetos de la vida real contienen ___ y ___.
• El estado de un objeto de software es almacenado en ___.
• El comportamiento de un objeto de software es expuesto a través de ___.
• El ocultamiento de los datos internos al mundo externo,y accediéndolos
sólo mediante métodos públicos se conoce como ___.
• Un blueprint (plan) para un objeto de software es llamado una ___.
• Comportamientos comunes pueden ser definidos en una ___ y heredados
en una ___ usando la palabra clave ___.
• Una colección de métodos sin implementación es una ___.
• Un espacio de nombres que organiza clases e interfaces por funcionalidad
es un ___.
• El término API se refiere a ___?

También podría gustarte