Análisis y Diseño OO 1

4,157 views

Published on

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

Published in: Technology
  • Be the first to comment

Análisis y Diseño OO 1

  1. 1. Módulo 2Análisis y Diseño OO Clase 1 • POO y UML básico • POO en Java Alejandro González Orellana
  2. 2. Temario• POO y UML Básico• POO en Java
  3. 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. 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. 5. POO y UML Básico Objetos en UML Nombre subrayado unObjeto atributo1 Atributos atributo2 Operaciones operacion1() operacion2()
  6. 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. 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. 8. POO y UML Básico Asociación en UML unAuto unPasajero Los objetos de unen con una línea unConductor
  9. 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. 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. 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. 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. 13. POO y UML Básico Clases en UML Nombre Clase atributo1 Atributos atributo2 Operaciones operacion1() operacion2()
  14. 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. 15. POO y UML Básico Herencia en UML Vehiculo El Triángulo apunta a la clase padre VehiculoTerrestre VehiculoAereo VehiculoMaritimo Auto Bicicleta
  16. 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. 17. POO y UML Básico Interfaces en UML Vehiculo <<interface>> VehiculoMotorizado avanzar() VehiculoTerrestre Se escribe <<interface>> en la parte superior Auto
  18. 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. 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. 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. 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. 22. Temario• POO y UML básico• POO en Java
  23. 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() { ... }}

×