Programación Orientada a Objeto (POO)

                               Origen y
                              Conceptos




      Características                             Objeto



                              POO


                        UML               Clase
Programación Orientada a Objeto (POO)
   Paradigma                                                                Forma en que
   Orientado a                                Programación                   un hombre
                      Representa la                             Simula la
     Objeto           evolución natural de
                                                                               trabaja



                                              El mundo como
   Concepción
                                              un conjunto de
     Básica            Es Percibir
                                                  objetos




                                             Orden Cronológico

                                     Lenguajes
   Basado en Simula                                            Nacimiento                  C++
                                     predecesores

   •Desarrollado por                 •SmallTalk                •Se creó en los años 70     •Debido a su influencia
    Krysten Nygaard y Ole            •C++                                                   se convirtió en un de un
    Johan Dahl                       •Java                                                  paradigma de
   •Fue creado a mediados                                                                   programación
                                     •C#
    de los años 60 en el                                                                    dominante a mediado
    centro de computación                                                                   de los 80’s
    Noruego
   •Fue un lenguaje de
    orientado a simulación
    de procesos
   •Aparecen por primera
    vez el término Objeto y
    Clase
Programación Orientada a Objeto (POO)
                                                                                 Utilizado para
                                          Utiliza Objetos y                   diseñar aplicaciones
            Paradigma
                                          sus interacciones                     y programas de
                                                                                 Computadora




                                                                Lenguajes
  Teorías   Estándares     Modelos                             Orientados a
                                                                  Objeto

             Métodos



                                                                                                                  Basado
                                                                                                                    en
                                                        Ventajas                                     Basado
                                                                                                       en         Objetos
                                                                                                     Clases
                         •Reutilización de Código                                                             Herencia
                         •Permite crear sistemas más complejos                                                   de
                         •Relación del sistema con el mundo real                                               Clases
                         •Facilita la creación de programas visuales
                         •Se trabaja mediante la construcción de prototipos
                         •Agiliza el desarrollo del Software
                         •Facilita el trabajo en Equipo
                         •Facilita el mantenimiento del Software                                     Lenguajes Orientados a
                                                                                                            Objeto
Programación Orientada a Objeto (POO)

                                                            Abstracción:
                                                            •Generalización conceptual de un determinado conjunto de
                                                             objetos y de sus atributos y propiedades
                       Abstracción                          •Deja en segundo término los detalles concretos de cada
                                                             objeto

                                                            Polimorfismo:
                                                            •Acceso a un grupo de funciones a través de la misma
                                                             interfaz
 Herencia                                    Polimorfismo
                                                            •Un identificador puede tener distintas formas (distintos
                                                             cuerpos de función y comportamiento)


                       POO                                  Modularidad
                                                            •Propiedad de un sistema descompuesto en un conjunto de
                                                             módulos cohesivos débilmente acoplados


                                                            Encapsulamiento:
                                                            •Capacidad de agrupar y condensar en un entorno con
                                                             límites bien definidos distintos elementos
        Encapsulamie
                                     Modularidad
                                                            •Se hace referencia a encapsulamiento abstracto
            nto
                                                            Herencia:
                                                            •Es un tipo de jerarquía aplicada sobre las clases
                                                            •Las clases tienen descendencia y heredan atributos de
                                                             clases “padres” (Superclases)
                                                            •Existe la herencia simple y la múltiple
Definición de Objeto
      Objeto
                                        Representa
                                                                                 Componentes
Es
                 Representa




                                                                                                  •Caracterizan al Objeto
                                                         Entidad Real                             •Variables que
     Instancia                 Abstracción                                          Atributos
                                                          o Abstracta                              almacenan datos
                                                                                                   relacionados al estado
                                                                                                   de un objeto
De                                     De       En el dominio del
                                                                                                       •Caracterizan el
                                                                                                        comportamiento del
                              Elementos de la                                                           objeto
      Clase                                                Problema
                                 vida real                                                             •Hacen posible que el
                                                                        Objeto           Método         objeto responda a
                                                                                                        solicitudes externas
                                                                                                       •Pueden depender o
                                                                                                        modificar valores de
                                                                                                        los atributos
     Relación con otros paradigmas
                                                                                                  •Es lo que le diferencia
                                                                                                   de los demás objetos
                                                                                    Identidad     •Esta identidad se crea
                                                                                                   mediante un
                                                                                                   identificador

Paradigma                             Paradigma
Estructurado                          POO
•Variables                            •Objetos
Definición de Clase
                                                                                      Ejemplo
                    Clase
                                          De



                                                                                             Mi auto
       Representa
                             Es                                                 El auto
                                                                                de Luis
                              Plantilla        Instancia
                                                                                          El auto
                                                                                            de
                                   De
                                                      Son                                 Laura
                    De
                            Conjunto de
Abstracción
                              Objetos
                                          Que
                                          Comparten



                                                                                     Clase: Auto
                                            Estructura y
         Componentes                      comportamientos


    Atributos
                                                             Objeto                            Clase
    (Estado)

                                                            Es una instancia de la           Es la definición de un

                            Clase                                   clase                        tipo de objeto


                                                                                                Representa la
                                                            Ya está definido, con
   Métodos o                                                                                  abstracción de las
   Procesos                                                    características
                                                                                             características de un
                                                                particulares
                                                                                               grupo de objetos
Definición de UML
                                                                      Los diagramas UML permiten:
                   UML
            (Lenguaje unificado de
                  modelo)                          Sirve para




          Es                                Es

                                     Lenguaje          Especificar,
     Sucesor                            de             construir y
                                                                                            Comunicar la
                                     Modelado          documentar                          estructura de un
          De                                                                                    sistema
                                      De
                                                                                               complejo

    Métodos de                                           Software
                                     Conjunto de
 análisis y diseños                                     Orientado a
                                       Objetos                                              Comprender
orientados a objeto                                       Objetos
                                                                                             Mejor lo que
                                                                                              estamos
                                                                                            Construyendo
                      Características
                                                                                                                 Descubrir
                                                                          Especificar el
   Representa los planos de un sistema                                                                         oportunidades
                                                                        comportamiento
                                                                                                                     de
                                                                          deseado del
                                                                                                              simplificación y
                                                                            sistema
                                                                                                                Reutilización
   El modelo captura lo esencial


   Tiene 13 tipos de Diagramas

   Es un estándar OMG (Object Management
   Group)
Diagramas UML
                    Diagramas UML




Diagrama sde                                    Diagramas de
 Estructuras                                   comportamiento


                                                         Diagrama de
    Diagrama de    Diagrama de         Diagrama de                     Diagramas de
                                                         Máquina de
       Clases       Actividad          Casos de Uso                     Interacción
                                                            Estado


    Diagrama de
                                                                           Diagrama de
     Estructura
     compuesta
                                   Los más utilizados                       Secuencia


                                           Clases
   Diagrama de                                                           Diagrama Global
   Componentes                                                            de Interacción

                                                           Casos de
                       Actividad
                                                             Uso
    Diagrama de                                                           Diagrama de
    Despliegue                                                            comunicación



    Diagrama de                                                            Diagrama de
      Objetos                                                                Tiempo

                        Estado                            Secuencia

    Diagrama de
     Paquetes
                                        Colaboració
                                             n
Diagramas UML más utilizados

  Clases           Actividad          Casos de Uso         Estado          Colaboración       Secuencia



  Estático que                                             Describe el         Permite la        Resalta la
                    Representa el      Son usados en
   describe la                                           comportamient      observación de      ordenación
                   flujo de control     el modelado
 estructura de                                           o de un sistema     la interacción   temporal de los
                     del Sistema         del sistema
  un sistema                                                Reactivo          de un objeto       mensajes
                                                                             respecto a los
   Sirve para       Se muestra el                                                demás           Se puede
                                       Se representan           El
 visualizar las    orden en el que       acciones que    comportamient                         transformar
relaciones entre   van realizando        realiza cada     o del sistema                       mecánicamente
    las clases         tareas                                                   Muestra         en uno de
                                       tipo de usuario    está dirigido
                                                                             interacciones     colaboración
                                          (desde su        por eventos
                                                                              organizadas
Esta compuesto                          punto de vista
                                                                             alrededor de
      por                                                                       los roles
Clases, relacion                                         Denota Estados
       es                                                 y transiciones
                                                          entre estados      Es necesario
                                                                              etiquetar la
                                                                             secuencia de
                                                                               mensajes
Diagrama de Clases y relaciones
                           •Una subclase hereda métodos y atributos
                            especificados por una super clase                 Automóvil            Ventana
                           •La subclase posee sus propios métodos y
Generalización /Herencia    atributos




                           •Denota la dependencia de una clase con otra
                           •La clase dependiente se puede ver afectada si
                                                                              Aplicación
     Dependencia
                            sufre cambios la otra clase
                           •Gráficamente se muestra como una línea
                                                                                           1   *       Ventana
                            discontinua con punta de flecha



                                                                                                       Base de Datos
                           •Por valor (composición)                           Aplicación
                            •El elemento destino forma parte del elemento
                             fuente, su relación se rompe cumpliendo
      Agregación             restricciones
                           •Por referencia (agregación)                                                Código
                            •El elemento destino forma parte del elemento
                             fuente, su relación se rompe sin restricciones



                           •Asociación estructural que describe conexión
                            entre objetos                                                              Orden de
                           •Se muestra gráficamente con una línea continua
                                                                              Cliente      1       *   Compra
      Asociación           •No es una relación fuerte
Introducción a Java
                                  Lenguaje                              Sun
      Java                       Moderno y de                       Microsystems
                   Es un                           Presentado por
                                  alto nivel                          en 1995

 Su

                   Lo que permite añadir
                                           Programas a
Neutralidad
                                           Páginas Web




                                                 Historia

Microprocesadores              Sun Microsystems            Oak                         Java

•Relacionado con el            •Patrocinó en 1991 un       •Fue llamado Oak            •Tuvo problemas en el
 desarrollo de                  proyecto interno de         debido a que se hacía       mercado
 Microprocesadores              programación llamado        referencia a un roble al   •En 1993 se aprovechó la
•Permitió la                    Green                       momento de nombrarlo        explosión de WWW por
 masificación de las           •El proyecto                •Se cambió el nombre de      su buena capacidad
 computadoras                   patrocinado era un          lenguaje al enterarse       para agregar contenido
 personales                     lenguaje de                 que ya existía uno con      dinámico
                                programación basado         el mismo nombre, ahora     •Se anunció
                                en C++ llamado Oak          se nombró Java en           formalmente en 1995
                                                            honor a una cafetería
                                                            local visitada por el
                                                            grupo
Características de Java

                      Es                                                         Indiferente a
       Lenguaje                                                                                              Tiene Alto
                  Orientado a   Distribuido       Robusto   Seguro    Portable         la        Dinámico
        Simple                                                                                              Rendimiento
                    Objeto                                                       arquitectura




Máquina Virtual de Java (JVM)                                    Estructura básica de un programa en java

       Java              Programa Java


          Es un                   Al compilarse
                                  produce


  Lenguaje                  Programas
Interpretado                 Bytecode

                                    Son interpretados
 por                                por




                  JVM
Elementos de un programa en Java

               Identificadores
                                                Elementos           Características
                                               Identificadores   Es el nombre que identifica a
                                                                 una variable, método,
                                                                 función miembro o clase


 Variables                       Comentarios   Comentarios       Es un texto adicional que se
                                                                 agrega a un programa para
                                                                 explicar su funcionalidad

                                               Sentencias        Es una orden que se le da al

              Programa                                           programa para ejecutar una
                                                                 acción específica
                Java
                                               Bloques de        Un grupo de sentencias que
                                                                 comparten una unidad
                                               Código
Expresiones                       Sentencias   Expresiones       Es todo aquello que se puede
                                                                 poner a la derecha de un
                                                                 operador de asignación

                                               Variable          Una variable es un nombre
                                                                 que se asocia con una
                 Bloques de
                   Código                                        porción de la memoria del
                                                                 ordenador, en la que se
                                                                 guarda el valor asignado a
                                                                 dicha variable
Errores comunes en la programación
                                             Ciclos Infinitos




                    Errores Lógicos o
                                            División entre 0
                       semánticos




                                         Errores en el algoritmo

    Errores en un
     programa

                                            No finalizar una
                                           sentencia con un ;



                                             No utilizar la
                                         combinación apropiada
                    Errores Sintáticos
                                            de Mayúsculas y
                                               minúculas



                                         No utilizar llaves pares

Programación Orientada a Objeto y Java

  • 1.
    Programación Orientada aObjeto (POO) Origen y Conceptos Características Objeto POO UML Clase
  • 2.
    Programación Orientada aObjeto (POO) Paradigma Forma en que Orientado a Programación un hombre Representa la Simula la Objeto evolución natural de trabaja El mundo como Concepción un conjunto de Básica Es Percibir objetos Orden Cronológico Lenguajes Basado en Simula Nacimiento C++ predecesores •Desarrollado por •SmallTalk •Se creó en los años 70 •Debido a su influencia Krysten Nygaard y Ole •C++ se convirtió en un de un Johan Dahl •Java paradigma de •Fue creado a mediados programación •C# de los años 60 en el dominante a mediado centro de computación de los 80’s Noruego •Fue un lenguaje de orientado a simulación de procesos •Aparecen por primera vez el término Objeto y Clase
  • 3.
    Programación Orientada aObjeto (POO) Utilizado para Utiliza Objetos y diseñar aplicaciones Paradigma sus interacciones y programas de Computadora Lenguajes Teorías Estándares Modelos Orientados a Objeto Métodos Basado en Ventajas Basado en Objetos Clases •Reutilización de Código Herencia •Permite crear sistemas más complejos de •Relación del sistema con el mundo real Clases •Facilita la creación de programas visuales •Se trabaja mediante la construcción de prototipos •Agiliza el desarrollo del Software •Facilita el trabajo en Equipo •Facilita el mantenimiento del Software Lenguajes Orientados a Objeto
  • 4.
    Programación Orientada aObjeto (POO) Abstracción: •Generalización conceptual de un determinado conjunto de objetos y de sus atributos y propiedades Abstracción •Deja en segundo término los detalles concretos de cada objeto Polimorfismo: •Acceso a un grupo de funciones a través de la misma interfaz Herencia Polimorfismo •Un identificador puede tener distintas formas (distintos cuerpos de función y comportamiento) POO Modularidad •Propiedad de un sistema descompuesto en un conjunto de módulos cohesivos débilmente acoplados Encapsulamiento: •Capacidad de agrupar y condensar en un entorno con límites bien definidos distintos elementos Encapsulamie Modularidad •Se hace referencia a encapsulamiento abstracto nto Herencia: •Es un tipo de jerarquía aplicada sobre las clases •Las clases tienen descendencia y heredan atributos de clases “padres” (Superclases) •Existe la herencia simple y la múltiple
  • 5.
    Definición de Objeto Objeto Representa Componentes Es Representa •Caracterizan al Objeto Entidad Real •Variables que Instancia Abstracción Atributos o Abstracta almacenan datos relacionados al estado de un objeto De De En el dominio del •Caracterizan el comportamiento del Elementos de la objeto Clase Problema vida real •Hacen posible que el Objeto Método objeto responda a solicitudes externas •Pueden depender o modificar valores de los atributos Relación con otros paradigmas •Es lo que le diferencia de los demás objetos Identidad •Esta identidad se crea mediante un identificador Paradigma Paradigma Estructurado POO •Variables •Objetos
  • 6.
    Definición de Clase Ejemplo Clase De Mi auto Representa Es El auto de Luis Plantilla Instancia El auto de De Son Laura De Conjunto de Abstracción Objetos Que Comparten Clase: Auto Estructura y Componentes comportamientos Atributos Objeto Clase (Estado) Es una instancia de la Es la definición de un Clase clase tipo de objeto Representa la Ya está definido, con Métodos o abstracción de las Procesos características características de un particulares grupo de objetos
  • 7.
    Definición de UML Los diagramas UML permiten: UML (Lenguaje unificado de modelo) Sirve para Es Es Lenguaje Especificar, Sucesor de construir y Comunicar la Modelado documentar estructura de un De sistema De complejo Métodos de Software Conjunto de análisis y diseños Orientado a Objetos Comprender orientados a objeto Objetos Mejor lo que estamos Construyendo Características Descubrir Especificar el Representa los planos de un sistema oportunidades comportamiento de deseado del simplificación y sistema Reutilización El modelo captura lo esencial Tiene 13 tipos de Diagramas Es un estándar OMG (Object Management Group)
  • 8.
    Diagramas UML Diagramas UML Diagrama sde Diagramas de Estructuras comportamiento Diagrama de Diagrama de Diagrama de Diagrama de Diagramas de Máquina de Clases Actividad Casos de Uso Interacción Estado Diagrama de Diagrama de Estructura compuesta Los más utilizados Secuencia Clases Diagrama de Diagrama Global Componentes de Interacción Casos de Actividad Uso Diagrama de Diagrama de Despliegue comunicación Diagrama de Diagrama de Objetos Tiempo Estado Secuencia Diagrama de Paquetes Colaboració n
  • 9.
    Diagramas UML másutilizados Clases Actividad Casos de Uso Estado Colaboración Secuencia Estático que Describe el Permite la Resalta la Representa el Son usados en describe la comportamient observación de ordenación flujo de control el modelado estructura de o de un sistema la interacción temporal de los del Sistema del sistema un sistema Reactivo de un objeto mensajes respecto a los Sirve para Se muestra el demás Se puede Se representan El visualizar las orden en el que acciones que comportamient transformar relaciones entre van realizando realiza cada o del sistema mecánicamente las clases tareas Muestra en uno de tipo de usuario está dirigido interacciones colaboración (desde su por eventos organizadas Esta compuesto punto de vista alrededor de por los roles Clases, relacion Denota Estados es y transiciones entre estados Es necesario etiquetar la secuencia de mensajes
  • 10.
    Diagrama de Clasesy relaciones •Una subclase hereda métodos y atributos especificados por una super clase Automóvil Ventana •La subclase posee sus propios métodos y Generalización /Herencia atributos •Denota la dependencia de una clase con otra •La clase dependiente se puede ver afectada si Aplicación Dependencia sufre cambios la otra clase •Gráficamente se muestra como una línea 1 * Ventana discontinua con punta de flecha Base de Datos •Por valor (composición) Aplicación •El elemento destino forma parte del elemento fuente, su relación se rompe cumpliendo Agregación restricciones •Por referencia (agregación) Código •El elemento destino forma parte del elemento fuente, su relación se rompe sin restricciones •Asociación estructural que describe conexión entre objetos Orden de •Se muestra gráficamente con una línea continua Cliente 1 * Compra Asociación •No es una relación fuerte
  • 11.
    Introducción a Java Lenguaje Sun Java Moderno y de Microsystems Es un Presentado por alto nivel en 1995 Su Lo que permite añadir Programas a Neutralidad Páginas Web Historia Microprocesadores Sun Microsystems Oak Java •Relacionado con el •Patrocinó en 1991 un •Fue llamado Oak •Tuvo problemas en el desarrollo de proyecto interno de debido a que se hacía mercado Microprocesadores programación llamado referencia a un roble al •En 1993 se aprovechó la •Permitió la Green momento de nombrarlo explosión de WWW por masificación de las •El proyecto •Se cambió el nombre de su buena capacidad computadoras patrocinado era un lenguaje al enterarse para agregar contenido personales lenguaje de que ya existía uno con dinámico programación basado el mismo nombre, ahora •Se anunció en C++ llamado Oak se nombró Java en formalmente en 1995 honor a una cafetería local visitada por el grupo
  • 12.
    Características de Java Es Indiferente a Lenguaje Tiene Alto Orientado a Distribuido Robusto Seguro Portable la Dinámico Simple Rendimiento Objeto arquitectura Máquina Virtual de Java (JVM) Estructura básica de un programa en java Java Programa Java Es un Al compilarse produce Lenguaje Programas Interpretado Bytecode Son interpretados por por JVM
  • 13.
    Elementos de unprograma en Java Identificadores Elementos Características Identificadores Es el nombre que identifica a una variable, método, función miembro o clase Variables Comentarios Comentarios Es un texto adicional que se agrega a un programa para explicar su funcionalidad Sentencias Es una orden que se le da al Programa programa para ejecutar una acción específica Java Bloques de Un grupo de sentencias que comparten una unidad Código Expresiones Sentencias Expresiones Es todo aquello que se puede poner a la derecha de un operador de asignación Variable Una variable es un nombre que se asocia con una Bloques de Código porción de la memoria del ordenador, en la que se guarda el valor asignado a dicha variable
  • 14.
    Errores comunes enla programación Ciclos Infinitos Errores Lógicos o División entre 0 semánticos Errores en el algoritmo Errores en un programa No finalizar una sentencia con un ; No utilizar la combinación apropiada Errores Sintáticos de Mayúsculas y minúculas No utilizar llaves pares