Your SlideShare is downloading. ×
Análisis y Diseño OO 1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Análisis y Diseño OO 1

3,335
views

Published on

Slides del primer curso de ADOO que dicté el año 2005 - Incluye conceptos de POO y UML básico

Slides del primer curso de ADOO que dicté el año 2005 - Incluye conceptos de POO y UML básico

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,335
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
76
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Módulo 2Análisis y Diseño OO Clase 1 • POO y UML básico • POO en Java Alejandro González Orellana
  • 2. Temario• POO y UML Básico• POO en Java
  • 3. POO y UML Básico Programación Programación Estructurada Orientada a Objetos MÉTODOS MÉTODOS PROCEDIMIENTOS ATRIBUTOS ATRIBUTOS MÉTODOS MÉTODOS DATOS ATRIBUTOS ATRIBUTOS
  • 4. POO y UML Básico Objetos• Un objeto puede ser cualquier cosa que tenga su propia identidad. Por ej: En el mundo real son objetos una persona, un auto, una casa, etc.• Todos los objetos tienen atributos. Por ej. Un auto tiene una marca, un modelo, un color, un n° de patente, etc.• Los objetos también tienen comportamiento. Por ej. Un auto puede moverse de un lugar a otro.• En la POO podemos hacer abstracciones de objetos del mundo real con sus atributos y comportamiento. Cada objeto tiene cierto conocimiento, en la forma de atributos, y sabe como realizar ciertas operaciones.
  • 5. POO y UML Básico Objetos en UML Nombre subrayado unObjeto atributo1 Atributos atributo2 Operaciones operacion1() operacion2()
  • 6. POO y UML Básico Encapsulamiento• Se refiere a esconder los atributos de un objeto detrás de sus operaciones o métodos Métodos Atributos
  • 7. POO y UML Básico Asociación y agregación• Son forma de relación entre objetos• Asociación: Los objetos se relacionan pero no dependen completamente el uno del otro. Por ej. Un auto y un conductor.• Agregación: Uno o más objetos son parte de un objeto mayor. Por ej. Un auto y su motor.
  • 8. POO y UML Básico Asociación en UML unAuto unPasajero Los objetos de unen con una línea unConductor
  • 9. POO y UML Básico Agregación en UML unAuto motor Los objetos de unen con una línea. El extremo del objeto mayor usa un rombo panelControles velocimetro
  • 10. POO y UML BásicoNavegabilidad y nombre de una relación en UML direccion unCliente unaDirección La flecha indica la navegabilidad de la relación
  • 11. POO y UML Básico Mensajes• Un objeto se puede colaborar con otro para realizar tareas que no podrían realizar por si mismos.• Un objeto colabora con otro enviando un mensaje para invocar una operación de otro objeto.• Los mensajes pueden tener una respuesta, además pueden tener diversos parámetros.
  • 12. POO y UML Básico Clases• Las clases encapsulan características comunes a un grupo de objetos.• Todo objeto es instancia de una clase. Por ej. Pedro, María y Juan son instancias de la clase Persona.
  • 13. POO y UML Básico Clases en UML Nombre Clase atributo1 Atributos atributo2 Operaciones operacion1() operacion2()
  • 14. POO y UML Básico Herencia• Mediante la herencia una clase puede tomar características de una clase padre y agregar sus propias características. Por ej. La clase Tren hereda de la clase VehiculoTerrestre.• Mediante la herencia se pueden crear jerarquías de clases. Por ej. La clase Vehiculo tiene 3 clases hijas, VehiculoTerrestre, VehiculoAereo y VehiculoMaritimo, y cada una de estas tiene clases hijo
  • 15. POO y UML Básico Herencia en UML Vehiculo El Triángulo apunta a la clase padre VehiculoTerrestre VehiculoAereo VehiculoMaritimo Auto Bicicleta
  • 16. POO y UML Básico Herencia Múltiple e Interfaces• Una clase puede heredar de muchas otras. Pero debido a los problemas que trae la herencia múltiple en algunos lenguajes no está permitida.• En lenguajes como Java para evitar los problemas de la herencia múltiple se introdujo el concepto de interfaz.• Una interfaz en una clase abstracta pura. Sólo tiene métodos abstractos públicos y no tiene atributos.• En Java una clase sólo puede heredar de otra. Pero puede implementar múltiples interfaces.
  • 17. POO y UML Básico Interfaces en UML Vehiculo <<interface>> VehiculoMotorizado avanzar() VehiculoTerrestre Se escribe <<interface>> en la parte superior Auto
  • 18. POO y UML Básico Clases abstractas• Es una clase con al menos un método abstracto (sin implementación) ya sea propio o heredado.• Las clases abstractas no pueden ser instanciadas.• Permiten un modelamiento más flexible .• Las clases y métodos no abstractos se denominan concretos.
  • 19. POO y UML Básico Clases abstractas en UML El nombre se escribe en Vehiculo itálicas avanzar() <<abstract>> Vehiculo avanzar() VehiculoTerrestre Otra forma de representar Auto clases abstractas
  • 20. POO y UML Básico Sobrescritura de métodos• Una clase hijo puede cambiar la implementación de una operación de una clase padre. Por ej. El método abstracto avanzar() de Vehiculo puede implementarse en la clase Auto
  • 21. POO y UML Básico Polimorfismo• Polimorfismo significa “muchas formas” y en OO aplica de dos formas.• Atributos polimórficos: Un atributo que tenga como tipo una clase padre puede tener como valor, en tiempo de ejecución, objetos pertenecientes a una de las clases hijo.• Mensajes polimórficos: Al invocar un mensaje en un objeto declarado con una clase padre, en tiempo de ejecución, se puede invocar la operación implementada en una de las clases hijo.
  • 22. Temario• POO y UML básico• POO en Java
  • 23. POO en Java Ejemplo// Comentarios Javadoc omitidos// por brevedad Vehiculo <<interface>> VehiculoMotorizadopublic abstract class Vehiculo { avanzar() public abstract void avanzar();}public abstract class VehiculoTerrestre VehiculoTerrestre extends Vehiculo { numeroRuedas: int private int numeroRuedas;}public class Auto Auto extends VehiculoTerrestre implements VehiculoMotorizado { avanzar() public void avanzar() { ... }}