Programación Orientada a Objetos.ppt

download Programación Orientada a Objetos.ppt

of 28

Transcript of Programación Orientada a Objetos.ppt

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    1/28

    Programacin Orientada a Objetos

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    2/28

    Introduccin

    Los problemas suelen tener varias solucionesposibles. En programacin existen diversas metodologasque nos

    ayudan a enfrentar un problema. Cada metodologa tiene diversos lenguajesque las

    soportan. Algunos lenguajes soportan varias metodologas.

    Metodologa LenguajeEstructurada ortran! C! "ascal! #asic

    Orientada a objetos$OOP%

    C++! &ava! 'malltal(

    )rientada a eventos *isual#asic

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    3/28

    Programacin Orientada a Objetos

    Definicin:

    La Programacin Orientada a Objetos (OOP)es unmtodode programacin en el cual los programas se

    organi+an en colecciones cooperativas de objetos!cada uno de los cuales representa una instanciadealguna clase! y cuyas clases son! todas ellas!miembros de unajerar!ua de clasesunidas

    mediante relaciones de "erencia.Comentarios: ,samos objetos en lugar de algoritmoscomo bloque fundamental Cada objeto es una instanciade una clase

    Las clases est-n relacionadas entre s por relaciones tancomplejas como la erencia

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    4/28

    #entajas de la POO

    "roximidad de los conceptos modeladosrespecto a objetos del mundo real

    acilita la reutili+acin de cdigo / por tanto el mantenimiento del mismo 'e pueden usar conceptos comunesdurante

    las fases de an-lisis! dise0o e implementacin1isipa las barreras entre el quy el cmo

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    5/28

    Des$entajas de la POO

    2ayor complejidad a la ora de entender elflujo de datos "3rdida de linealidad

    4equiere de un lenguaje de modeli+acin deproblemas m-s elaborado5 Unified Modelling Language $,2L%

    4epresentaciones gr-ficasm-s complicadas

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    6/28

    Conce%tos de la OOP

    Conce%tos b&sicos )bjeto Clase

    Caractersticas de la OOP Abstraccin5 Encapsulamiento5

    2odularidad5 &erarqua

    Otros conce%tos OOP 6ipos "ersistencia

    'i%os de relaciones

    Asociacin 7erencia Agregacin 8nstanciacin

    e%resentaciones gr&ficas 1iagramas est-ticos $de

    clases! de objetos...% 1iagramas din-micos $de

    interaccin...%

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    7/28

    Objeto Clase

    ,n objetoes algo de loque ablamos y quepodemos manipular

    Existenen el mundo real $oen nuestro entendimiento delmismo%

    ,na clasedescribe losobjetos del mismo tipo 6odos los objetos son

    instanciasde una clase 1escribe las propiedadesy el

    comportamientode un tipo deobjetos

    Clase

    Atributos

    Operaciones

    Objeto:Clase

    Atributo1=valorAtributo2=valor...

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    8/28

    Conce%tos OOP: *bstraccin

    9os permite trabajar con la complejidad del mundo real 4esaltando los aspectos relevantes de los objetos de una clase )cultando los detalles particulares de cada objeto

    'epararemos el comportamientode la implementacin Es m-s importante saber qu3 se aceen lugar de cmo seace5

    ,n sensor de temperatura 'e define porque...

    mide la temperatura nos muestra su valor se puede calibrar...

    9o sabemos... $no nos importa% cmo mide la temperatura de qu3 est- eco cmo se calibra

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    9/28

    Conce%tos OOP: *bstraccin

    La abstraccin no es :nica5

    n coc"e %uede ser,,,

    ,na cosa con ruedas! motor! volantey pedales $conductor%

    Algo capa+ de transportar personas$taxista%

    ,na caja que se mueve $simuladorde tr-fico%

    Conjunto de pie+as $fabricante%

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    10/28

    Conce%tos OOP: -nca%sulamiento

    9inguna partede un sistema complejo debedependerde los detalles internos de otra.

    Complementaa la abstraccin 'e consigue5 'eparandola interfa+de su implementacin )cultandola informacin internade un objeto

    Escondiendola estructurae implementacinde losm3todos$algoritmos%.

    Exponiendosolo la forma de interactuarcon elobjeto

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    11/28

    Conce%tos OOP: -nca%sulamiento

    #emos !ue se %uede,,, Construir con5

    ; puntos $y restricciones% < punto y = vectores < punto! < vector! < -ngulo

    y < lado 6ransformaciones5

    Escalado 4otacin 1espla+amiento

    1ibujar

    .o $emos,,, Como est- representado

    internamente ; puntos> < punto y = vectores> ...

    Como se modifica su escala ?uardando el factor> Escalando en el momento>

    8dem para rotacin! traslacin!

    etc...

    -jem%lo: n %aralelogramo

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    12/28

    Conce%tos OOP: Modularidad

    Consiste en separar el sistema en bloques pocoligadosentre s5 mdulos. )rgani+acin del cdigo

    Es una especie de encapsulamientode m-s alto nivel. El C@@ no lo impone aunque lo soporta

    $namespace% El &ava es m-s formal $pac(ages%

    1ifcil pero muy importante en sistemas grandes. 'uele aplicarse refinando el sistema en sucesivas

    iteraciones

    Cada mdulo debe definir una interfa+ clara

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    13/28

    Conce%tos OOP: Modularidad

    -jem%lo: /imulacin detector de **--

    "uede dividirse en los siguientes mdulos...

    0, 1eometra5 1escribe el detector

    fsicamente $forma! materiales! tama0o%2, Partculas5 Las partculas cuyas

    interacciones nos interesan

    3, Procesos5 Aqu enla+amos la informacindel detector $materia% con las propiedades

    de las partculas.4, ,,,

    "odramos dividir el mdulo de procesos enprocesoselectromagnticos!procesos hadrnicos! ...

    Lo mismo podramos acerlo con las partculas5 leptones!hadrones! ...

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    14/28

    Conce%tos POO: 5erar!ua

    Es una clasificacinu ordenamiento de lasabstracciones

    7ay dos jerarquas fundamentales5 Estructura de clases5&erarqua es un/aB4elaciones de erencia

    Estructura de objetos5&erarqua parte deB4elaciones de agregacinEst- implementada de manera gen3rica en la estructura

    de clases

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    15/28

    Conce%tos OOP: 5erar!ua

    ,na figura %lanaes5 Algo con una posicin en el

    plano Escalable 4otable

    ,n gr&ficoes algo que se

    puede dibujar en =1

    ,n diagramaes un conjuntode cuadrados y crculos

    6erenciasimple ,n cuadrado es una figura ,n crculo es unafigura

    6erenciam:ltiple

    es unafiguraes un gr-fico

    *gregacin

    -jem%lo: 7iguras %lanas diagramas

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    16/28

    Conce%tos OOP: 'i%o

    Es el refor+amientodel concepto de clase)bjetos de tipo diferente no pueden ser

    intercambiados El C@@ y el &ava son lenguajes fuertementetipeadosB

    Ayuda a corregir errores en tiempo de

    compilacin 2ejor que en tiempo de ejecucin

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    17/28

    Conce%tos OOP: Persistencia

    "ropiedad de un objeto de trascenderen el tiempo yen el espacio a su creador $programa que lo gener%

    9o se trata de almacenarslo el estado de un objeto

    sino toda la clase$incluido su comportamiento% 9o est- directamente soportado por el C@@

    Existen libreras y sistemas completos $))1#2'% quefacilitan la tarea

    rameor(s $entornos% como 4))6 lo soportan parcialmente$reflex%

    El concepto de seriali+acindel &ava est-directamente relacionado con la persistencia

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    18/28

    elaciones

    Est-n presentes en cualquier sistema1efinen como se producen los intercambios de

    informacin y datos 6ambi3n ayudan a comprender las

    propiedades de unas clases a partir de laspropiedades de otras

    Existen ; tipos de relaciones5 Asociacin 7erencia Agregacin

    8nstanciacin

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    19/28

    elacin de *sociacin

    4elacin m-s general 1enota una dependencia sem-ntica Es bidireccional "rimer pasopara determinar una relacin

    m-s complejaEjemplo5 4elacin entre un producto y una venta. Cualquier ventaest- asociada a un producto! pero no es! ni forma parte de! ni

    posee ning:n productoD al menos en una primera aproximacin.

    Cardinalidad:multiplicidad a cada lado ,no a uno5 *enta6ransaccin ,no a mucos5 "roducto*enta 2ucos a mucos5 Comprador*endedor

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    20/28

    elacin de 6erencia

    F4elacin caractersticade la ))"G "uede expresar tanto especiali+acin

    como generali+acin Evita definir repetidas veces

    las caractersticas comunesavarias clases

    ,na de las clases compartela estructurayHo el comportamientode otra$s%clase$s%.

    6ambi3n se denomina relacin es un/aB$is a%

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    21/28

    elacin de 6erencia ($ocabulario)

    Clase base o su%erclase5 clase de la cual se ereda Clase deri$ada o subclase5 clase que ereda 6erencia sim%le5 7ereda de una sola clase 6erencia m8lti%le5 7ereda de varias clases

    &ava solo la soporta parcialmente "resenta diversos problemas $Iqu3 acer cuando se ereda

    m-s de una ve+ de la misma clase>% Clase abstracta5 La que no lleva! ni puede llevar!

    ning:n objeto asociado Polimorfismo5 "osibilidad de usar indistintamente

    todos los objetos de un clase y derivadas.

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    22/28

    elacin de 6erencia (ejem%lo)

    Figura plana

    Tringulo

    Rectngulo

    Equiltero

    Escaleno

    Issceles

    Cuadrado

    Polimorfismo

    Clase abstracta

    Superclase Subclase

    Herencia simple

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    23/28

    elacin de *gregacin

    ,na clasecontiene a otraclase Jsta es parte deB aqu3lla.

    6ambi3n se denominarelacin esparte deB $as a%

    ,na clase puede contener a otra5

    "or valor5 Cuando los objetos de la clase contenidase crean y destruyen al mismo tiempo que los de laclase continente

    "or referencia5 Cuando no necesariamente ocurre lo

    anterior

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    24/28

    elacin de *gregacin

    ,n coc"eest- eco de *olante

    "alanca de cambio2otor4uedas

    4uedas

    *olante

    2arcas

    2otor

    Coce

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    25/28

    elacin de Instanciacin

    En determinados casos una clase $p.ej. unvector% puede implementarseindependientemente del tipo$real! complejo!color...% de alguno de sus atributos5 1efinimos una clase

    %arametri9adao template$plantilla%

    "ara cada uno de los tiposque necesitemosdefinimos una nuevaclase8nstanciacin

    6ipo

    *ector

    *ectorEnterosKint

    *ectorColoresKColor

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    26/28

    e%resentaciones gr&ficas

    9os sirven para comunicarnos con otros usuarios odesarrolladores.

    1ocumentan nuestro sistema 7ay m:ltiples vistas y tipos de diagramas5

    Est-ticos 1iagramas de clasesLos de los ejemplos 1iagramas de objetos

    ... 1in-micos5 1iagramas de estado5 2uestra el ciclo de vida de los objetos!

    sistemas! etc... 1iagramas secuenciales5 2uestra como los objetos interaccionan

    entre ellos ...

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    27/28

    Diagrama de estado: n ascensor

    En el primerpiso

    'ubiendo

    #ajando alprimer piso

    #ajando "arado

    subir

    llegu3

    llegu3 subir

    bajar

    timeout

    llegu3

  • 7/26/2019 Programacin Orientada a Objetos.ppt

    28/28

    Diagrama secuencial: Im%resin

    )rdenador 8mpresora Cola'ervidor

    Imprime (fichero)

    Imprime (fichero)

    [impr. Libre]

    Almacena (fichero)

    [impr. ocupada]