Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Modulo I Fundamentos de Java by msz78385

VIEWS: 96 PAGES: 135

									                    Diplomado de Programación en Java

                                           Modulo I
                                  Fundamentos del Lenguaje Java




INSTITUTO TECNOlógico DE SONORA                              Por: Juan Manuel Osuna
                                         Diplomado de Programación en Java



                                        AGENDA

                       • Información del Curso.

                       • Java, El Lenguaje.

                       • J2SDK, Java 2 Standard Development Kit.

                       • Estructuras de Datos Básicas en Java.

                       • Control de Flujo en Java.

                       • Paradigma Orientado a Objetos.




Diplomado de Programación en Java                            Modulo I - Fundamentos del Lenguaje Java
                                  Información del Curso.




INSTITUTO TECNOlógico DE SONORA                            Por: Juan Manuel Osuna
                                                         Información del Curso.



                                       Competencia
                                    Competencia del Modulo:

    El participante obtendrá las bases del lenguaje de programación
    Orientado a Objetos en busca de fomentar la capacidad abstracción del
    alumno y enfocarla a la solución de problemas.

                                    Competencia del Diplomado:

     Este curso provee de conocimientos en el lenguaje de programación
     Java para la construcción de aplicaciones, tanto de escritorio como
     Web. Busca que el alumno sea capaz de desarrollarlas empleando
     técnicas de programación orientadas a objetos y componentes, que
     integren Interfaces de Usuario y Bases de Datos, y pueda servir de
     sustento para las materias de desarrollo de aplicaciones.


Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                                              Información del Curso.



                                             Objetivos

                                        Proyecto Final del Modulo:

      El participante desarrollará una aplicación en java sencilla aplicando
      los conocimientos en las sentencias de control básicas y manejos de
      errores.
                                    Proyecto Integrador del Diplomado:

      El participante desarrollara una aplicación real que permita ofrecer una
      solución objetiva y favorable a una empresa, utilizando los
      conocimientos adquiridos en este diplomado.




Diplomado de Programación en Java                                    Modulo I - Fundamentos del Lenguaje Java
                                                                            Información del Curso.



                        Planificación del Modulo (1/4)
                                                   TIEMPO                                    AVANCE DEL PROYECTO
              UNIDAD DE COMPETENCIA                              PRACTICA/ASIGNACIÓN
                                                   TOTAL

    1.   Java, El Lenguaje
          1. Introducción.
          2. Orígenes del Lenguaje.
          3. Evolución de J2SDK.
          4. Filosofía de Java.
          5. Características de Java.
          6. Plataforma de Java.
          7. Java frente a los demás lenguajes.

    2.   J2SDK, Java 2 Standard Development Kit                                              Base teórica del lenguaje de
          1. Plataforma de Java                                                                 programación Java.
          2. Instalación de J2SDK.                   2 hrs.        Aplicar evaluación de
          3. Configuración de J2SDK.              presénciales    conocimientos básicos.
                                                                                               Conocer y entender el
          4. Componentes de Java.                                                            funciónamiento de J2SDK.




Diplomado de Programación en Java                                                     Modulo I - Fundamentos del Lenguaje Java
                                                                            Información del Curso.



                        Planificación del Modulo (2/4)
                                                   TIEMPO
                UNIDAD DE COMPETENCIA                            PRACTICA/ASIGNACIÓN         AVANCE DEL PROYECTO
                                                   TOTAL

      3.   Estructuras de datos básicas en Java
            1. Tipos de datos
                   1. Primitivos
                   2. Complejos.
            2. Variables e Identificadores.
            3. Conversión entre tipos numéricos
            4. Operadores.
                   1. Aritméticos.
                   2. Lógicos.
                   3. Relaciónales                   2 hrs.
            5. Cadenas de caracteres              Presénciales                                 Emplear tipos de datos,
            6. Ámbito de las variables                             Aplicar evaluación de
                                                                                              operadores y conversiones
            7. Arreglos                                           conocimientos básicos.
                                                    2 hrs.                                      entre tipos numéricos.
            8. Java no es perfecto                 Virtuales




Diplomado de Programación en Java                                                     Modulo I - Fundamentos del Lenguaje Java
                                                                   Información del Curso.



                        Planificación del Modulo (3/4)
                                          TIEMPO
               UNIDAD DE COMPETENCIA                    PRACTICA/ASIGNACIÓN          AVANCE DEL PROYECTO
                                          TOTAL

     4.   Control de flujo en Java
           1. Sentencias condicionales
                  1. If then Else
                  2. Switch                                Diseñar soluciones a
           2. Bucles o Ciclos.                           problemas basadas en el
                  1. Bucle while                        lenguaje de programación
                  2. Bucle do while                       Java, donde se utilicen
                  3. Bucle for                            operaciones entre tipos
                  4. Break y continue                            nativos.
           3. return                        4 hrs.
                                                           Diseñar soluciones a         Familiarización con el
                                         Presénciales
                                                        problemas, basadas en el      Lenguaje de Programación
                                                        lenguaje de programación     Java para la codificación del
                                            10 hrs.
                                                          Java, donde se utilicen          proyecto final.
                                           virtuales
                                                          sentencias de control e
                                                               iteraciones.

                                                        Elaborar código fuente en
                                                        Java, que implemente el
                                                         diseño a la solución de
                                                               problemas.




Diplomado de Programación en Java                                            Modulo I - Fundamentos del Lenguaje Java
                                                                                        Información del Curso.



                        Planificación del Modulo (4/4)
                                                            TIEMPO
               UNIDAD DE COMPETENCIA                                      PRACTICA/ASIGNACIÓN              AVANCE DEL PROYECTO
                                                            TOTAL


     5.   Paradigma Orientado a Objetos.
           1.   Paradigmas de Programación.
           2.   Clases y Objetos.
           3.   Modificadores de Acceso.                                  Ejemplos de Abstracción,
                                                                              Modularidad y
           4.   Principios de la Orientación a Objetos.
                                                                              Encapsulación.
           5.   Conceptos del Diseño Orientado a
                Objetos.                                                     Ejemplos de Clase y
                                                                                  Objetos.
                                                             2 hrs.
                                                          Presénciales.
                                                                            Crear el modelo de dos       Base teórica para la codificación
                                                                             problemas básicos de               del proyecto final.
                                                             3 hrs.
                                                                          clases, objetos, atributos y
                                                            Virtuales
                                                                                   métodos.

                                                                           Crear el modelo de dos
                                                                            problemas empleando
                                                                           todos los conceptos del
                                                                                 paradigma.




Diplomado de Programación en Java                                                                  Modulo I - Fundamentos del Lenguaje Java
                                  Java, el lenguaje.




INSTITUTO TECNOlógico DE SONORA                        Por: Juan Manuel Osuna
                                                                 Java, El Lenguaje.



                                      Temas a Tratar
                                    • Introducción.

                                    • Orígenes del Lenguaje.

                                    • Evolución de J2SDK.

                                    • Filosofía de Java.

                                    • Características de Java.

                                    • Plataforma de Java.

                                    • Java frente a los demás lenguajes.



Diplomado de Programación en Java                                   Modulo I - Fundamentos del Lenguaje Java
                                                          Java, El Lenguaje.



                                    Introducción
          Java es un lenguaje de programación orientado a objetos
          desarrollado por Sun Microsystems a principios de los años 1990.
                •Toma mucha de su Sintaxis de C y C++.
                •Posee un diseño de objetos más simple.
                •Fue creado por el “Green Team”, un equipo compuesto por 13
                personas a cargo de James Gosling
                •La promesa del lenguaje era “Write Once, Run Anywhere” con
                el objetivo de hacer funciónar un lenguaje independiente de la
                plataforma con un entorno de ejecución ligero (Java Virtual
                Machine).




Diplomado de Programación en Java                            Modulo I - Fundamentos del Lenguaje Java
                                                     Java, El Lenguaje.



                                    Orígenes del Lenguaje
     • Fue un lenguaje pensado originalmente para electrodomésticos.
     • Fue un proyecto que estuvo mucho tiempo rodando por los
     departamentos Sun Microsystems sin que se le diera importancia y ni
     atención.
     • Sun Microsystems decidió crear una filial denominada First Person
     Inc.
     • James Gosling decía que había una gran descomposición en las
     aportaciones de C++.
     • Estaba trabajando en un lenguaje de programación que el llamaba
     Oak, partiendo de la Sintaxis de C++.
     •El primer gran proyecto donde se utilizo este lenguaje fue uno
     denominado “Green”.


Diplomado de Programación en Java                       Modulo I - Fundamentos del Lenguaje Java
                                                      Java, El Lenguaje.



                                    Orígenes del Lenguaje
       • Para ese proyecto se construyo un ordenador experimental
       denominado StarSeven (*7).
       • En este sistema apareció “Duke”, la mascota de java.
       • First Person cerro en 1994.
       • Hill Joy, cofundador de Sun vio en Internet la posibilidad de
       disputarle a Microsoft su supremacía en el terreno del software y a
       “Oak” como instrumento para lograrlo.




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                        J2SDK, Java 2 Standard Development Kit.



                                    Evolución de J2SDK




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                        J2SDK, Java 2 Standard Development Kit.



                                    Evolución de J2SDK




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                        J2SDK, Java 2 Standard Development Kit.



                                    Evolución de J2SDK




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                        J2SDK, Java 2 Standard Development Kit.



                                    Evolución de J2SDK




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                                        Java, El Lenguaje.



                                    Filosofía de Java
                El lenguaje Java se creó con cinco objetivos principales:

      • Debería usar la metodología de la programación orientada a objetos.

      • Debería permitir la ejecución de un mismo programa en múltiples
      sistemas operativos.

      • Debería incluir por defecto soporte para trabajo en red.

      • Debería diseñarse para ejecutar código en sistemas remotos de forma
      segura.

      • Debería ser fácil de usar y tomar lo mejor de otros lenguajes
      orientados a objetos, como C++.


Diplomado de Programación en Java                          Modulo I - Fundamentos del Lenguaje Java
                                              Java, El Lenguaje.



                         Características del Lenguaje




Diplomado de Programación en Java                Modulo I - Fundamentos del Lenguaje Java
                                                           Java, El Lenguaje.



                                       Sencillo
          •     Basado en C++, pero se eliminaron sus complejidades.
          •     No soporta tipos de datos: Struct, Union y Puntero.
          •     No soporta typedef, ni #define.
          •     No permite sobre carga de operadores.
          •     No soporta herencia multiple.
          •     Posee una clase string, en vez del array tipo char[ ] finalizado
                con nulo.
          •     Cuenta con un sistema automático para asignar y liberar
                memoria.




Diplomado de Programación en Java                             Modulo I - Fundamentos del Lenguaje Java
                                                        Java, El Lenguaje.



                                    Orientado a Objeto
     •      Posiblemente sea el lenguaje más orientado a objetos de todos los
            existentes; en Java todo, a excepción de los tipos fundamentales
            de variables (int, char, long...) es un objeto.
     •      Es un lenguaje para desarrollar software Orientado a Objetos.
     •      Implementa los siguientes conceptos Orinetados a Objetos:
            •      Herencia.
            •      Encapsulación.
            •      Abstracción.
            •      Reutilización
            •      Entre otros…



Diplomado de Programación en Java                          Modulo I - Fundamentos del Lenguaje Java
                                                       Java, El Lenguaje.



                Lenguaje Compilado e Interpretado
      •      El compilador de Java traduce el código fuente a un código
             intermedio (bytecode).
      •      Los bytecode son interpretados (Ejecutados) en cualquier entorno
             donde exista un Intérprete Java.
      •      El Intérprete de Java se llama Máquina Virtual de Java o Java
             Virtual Machine (JVM).




Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                                          Java, El Lenguaje.



                                       Seguro

       •      Por su naturaleza distribuida, el tema de la seguridad es muy
              crítico.


       •      Existe tecnología de firma digital para confiar en un determinado
              código java.


       •      A su vez, existen políticas de seguridad para controlar de una
              manera mas precisa que puede o no puede hacer.




Diplomado de Programación en Java                            Modulo I - Fundamentos del Lenguaje Java
                                                      Java, El Lenguaje.



                                    Dinámico
         •     El código C++, a menudo requiere una recompilación completa
               si cambia una clase.


         •     Java emplea un método de interfaces para evitar estas
               dependencia y recompilaciones.


         •     Además, Java permite la Indirección.




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                                             Java, El Lenguaje.



                                     Distribuido
           •      Esta diseñado para trabajar en un entorno conectado en
                  red.
           •      Cuenta con una amplia         biblioteca    de     clases         para
                  comunicarse mediante:
                  •     TCP IP.
                  •     HTTP.
                  •     FTP.
                  •     Etc..
           •      Permite manipular con gran facilidad recursos via URL.




Diplomado de Programación en Java                               Modulo I - Fundamentos del Lenguaje Java
                                                      Java, El Lenguaje.



                                     Robusto
      •      Un software robusto es aquel que no se interrumpe fácilmente a
             consecuencia de fallos.


      •      Un lenguaje de estas características       suele       tener        mas
             restricciones a la hora de programar.


      •      No permite sobreescribir memoria y corromper otros datos
             mediante punteros.


      •      Facilita el manejo de excepciones.



Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                                     Java, El Lenguaje.



                                    Arquitectura Neutra
      •      Los Bytecode son interpretados en cualquier plataforma donde
             exista una JVM.


      •      El uso de estándares como UNICODE, IEEE 754, etc…, permite
             obtener los mismo resultados en todas las plataformas.




Diplomado de Programación en Java                       Modulo I - Fundamentos del Lenguaje Java
                                                            Java, El Lenguaje.



                                       Multihilo
          •     Soporta la ejecución de varias tareas a la vez.


          •     Posee una serie de clases que facilita su utilización.


          •     También conocido con el término en castellano ‘Multihilo’.




Diplomado de Programación en Java                              Modulo I - Fundamentos del Lenguaje Java
                                                        Java, El Lenguaje.



                                    Portable
      •      En Java no hay aspectos dependientes de la implementación,
             todas las implementaciones de Java siguen los mismos
             estándares en cuanto a tamaño y almacenamiento de los datos.


      •      Esto no ocurre así en C++, por ejemplo. En éste un entero, por
             ejemplo, puede tener un tamaño de 16, 32 o más bits, siendo lo
             única limitación que el entero sea mayor que un short y menor que
             un long int. Así mismo C++ bajo UNIX almacena los datos en
             formato little endian, mientras que bajo Windows lo hace en big
             endian. Java lo hace siempre en little edian para evitar
             confusiones.




Diplomado de Programación en Java                          Modulo I - Fundamentos del Lenguaje Java
                                                      Java, El Lenguaje.



                                    Altas Prestaciones
      •      Existen compiladores JIT (Just In Time), que compilan en el
             momento de la ejecución.


      •      Apartir de la JVM 1.2.2, se produjo un nuevo JIT llamado
             HotSpot.


      •      Apesar de todo, existe algun compilador ‘Real’ de Java
             (Perdemos la portabilidad y ganamos rendimiento), se encuentra
             en desuso.




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                                      Java, El Lenguaje.



                                    Plataforma de Java
      •    Una plataforma es el entorno Hardware y/o Software donde se
           ejecuta un programa.

           Ejemplo:
               - Plataforma RISC, Intel, Sparc...
               - Plataforma Win32, Linux, AIX, Solaris, HP-UX, Z/OS
               - Plataformas IBM, Sun, HP, Microsoft...

      • JAVA es una plataforma solo Software que se ejecuta en una
        plataforma Hardware / Software, la cual tiene dos componentes:

                  - La Maquina Virtual JAVA (JVM), es el Intérprete de JAVA.
                  - La Interfaz de Programación de Aplicaciones (API), es un
                   conjunto de clases ya desarrolladas que ofrecen un gran
                   abanico de posibilidades al programador.

Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                                      Java, El Lenguaje.



                                    Plataforma de Java
      • JAVA es una plataforma solo Software que se ejecuta en una
        plataforma Hardware / Software, la cual tiene dos componentes:

                  - La Máquina Virtual JAVA (JVM), es el Intérprete de JAVA.
                  - La Interfaz de Programación de Aplicaciones (API), es un
                   conjunto de clases ya desarrolladas que ofrecen un gran
                   abanico de posibilidades al programador.




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                                                                                  Java, El Lenguaje.



                                    Plataforma de Java
             •     Existen distintas ediciones de la plataforma JAVA:

                         - J2ME Java 2 Micro Edition.
                         - J2SE Java 2 Standard Edition.
                         - J2EE Java 2 Enterprise Edition.
                                    Optional
                                    Packages

                                                 Optional     Java 2 TM Platform, Enterprise
                                                 Packages                 Edition
                                                                    (J2EE TM Platform)
                                                 Java 2 TM
                                    Java 2 TM
                                                 Platform,
                                     Platform,
                                                 Standard    Personal
                                    Enterprise
                                                   Edition    Profile
                                      Edition
                                                 (J2SE TM
                                     (J2EE TM
                                                 Platform)
                                    Platform)                 Foundation Profile    MID Profile


                                                   JRE                                             Java Cards   TM
                                                                        CDC            CLDC            APIs




Diplomado de Programación en Java                                                                      Modulo I - Fundamentos del Lenguaje Java
                                                    Java, El Lenguaje.



                                    Plataforma de Java




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                  Java 2 Standard Development Kit.




INSTITUTO TECNOlógico DE SONORA                              Por: Juan Manuel Osuna
                                       J2SDK, Java 2 Standard Development Kit.



                                    Temas a Tratar
                                     • J2SDK.

                                     • Instalación de J2SDK.

                                     • Configuración de J2SDK.

                                     •Como esta Integrado?.

                                     •Que Incluye el Software?.

                                     •JDK vs JRE.




Diplomado de Programación en Java                                 Modulo I - Fundamentos del Lenguaje Java
                                    J2SDK, Java 2 Standard Development Kit.



                                       J2SDK
          •     Es el entorno de desarrollo oficial de Sun Mycrosystem.
          •     Descargable de forma “gratuita” de:
                                      gratuita
                - http://java.sun.com/javase/downloads/index.jsp




          •     Disponible para multiples plataforma:
                - Windows (9x, Me, 2k,XP); Linux; Mac/OS; OS/2; Solaris; Etc.
Diplomado de Programación en Java                            Modulo I - Fundamentos del Lenguaje Java
                                         J2SDK, Java 2 Standard Development Kit.



                                    Instalación de J2SDK
                                             1




                                                                2




                                                                                                      3




Diplomado de Programación en Java                                   Modulo I - Fundamentos del Lenguaje Java
                                         J2SDK, Java 2 Standard Development Kit.



                                    Instalación de J2SDK
                                            4




                                                                  5




                                                                                                      6




Diplomado de Programación en Java                                 Modulo I - Fundamentos del Lenguaje Java
                                         J2SDK, Java 2 Standard Development Kit.



                                    Instalación de J2SDK
                                              7




                Ruta de Instalación
                por default.




Diplomado de Programación en Java                                 Modulo I - Fundamentos del Lenguaje Java
                                     J2SDK, Java 2 Standard Development Kit.



                               Configuración de J2SDK
                                                                                   3



                               1




                                          2




Diplomado de Programación en Java                             Modulo I - Fundamentos del Lenguaje Java
                                        J2SDK, Java 2 Standard Development Kit.



                               Configuración de J2SDK



                                                                                                     6

                                                                                                 7




                                    4                                                        5




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                     J2SDK, Java 2 Standard Development Kit.



                               Configuración de J2SDK




                                         8                                          9




Diplomado de Programación en Java                             Modulo I - Fundamentos del Lenguaje Java
                                     J2SDK, Java 2 Standard Development Kit.



                               Configuración de J2SDK

                                                    10




Diplomado de Programación en Java                             Modulo I - Fundamentos del Lenguaje Java
                                         J2SDK, Java 2 Standard Development Kit.



                                    Como esta integrado?
              •      /bin: Las herramientas y utilidades de JDK.
              •      /lib: Las librerías de JDK.
              •      /include: Los archivos C/C++ utilizados para construir la JVM.
              •      /demo: Una variedad de ejemplos escritos en Java.
              •      /jre: La VJM sin herramientas de desarrollo.
              •      /src.zip: El código fuente de las APIs comprimido.




Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                       J2SDK, Java 2 Standard Development Kit.



                               Que incluye el software?
                •      Compilador de JAVA.            (javac.exe)
                •      Intérprete de JAVA.            (java.exe)
                •      Intérprete de Applets JAVA.    (Appletviewer.exe)
                •      Depurador de JAVA.             (jdb.exe)
                •      Generador de documentación. (javadoc.exe)
                •      Integrador de C/C++ (JNI).     (javah.exe)
                •      Desensamblador.                (javap.exe)




Diplomado de Programación en Java                                 Modulo I - Fundamentos del Lenguaje Java
                                          J2SDK, Java 2 Standard Development Kit.



                                         JDK vs JRE
                          •     JDK: Java Development Kit


                          •     JRE: Java Runtime Enviroment (o JVM).


                          •     JDK: Herramienta de Desarrollo + JRE.




Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                  Estructuras de Datos
                                    Básicas en Java.




INSTITUTO TECNOlógico DE SONORA                          Por: Juan Manuel Osuna
                                             Estructuras de Datos Básicas en Java.



                                    Temas a Tratar
                          • Comentarios.

                          • Puntos y Coma, Bloques y Espacios en Blanco.

                          • Reglas para crear identificadores.

                          • Palabras reservadas o “Keywords”.

                          • Declaración de Variables.

                          • Tipo de Datos.

                          • Ámbito de las variables.

                          • Tipo de Operadores.

Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                              Estructuras de Datos Básicas en Java.



                                       Comentarios
               •      Existen tres formas distintas de describir comentarios:


                      // Comentario en una línea.


                      /* Comentario de una línea o
                             Mas líneas */.


                      //* Comentario de documentación,
                             Utilizado por la herramienta javadoc.exe */



Diplomado de Programación en Java                                   Modulo I - Fundamentos del Lenguaje Java
                                           Estructuras de Datos Básicas en Java.



                             Puntos y Coma, Bloques
                              y Espacios en Blanco
          •     Una sentencia es una línea simple de código terminada en punto y
                coma.
                       System.out.println(“Hola”);
          •     Un bloque es un conjunto de sentencias agrupadas entre llaves “{
                }”.
          •     Los bloques pueden estar anidados.
          •     Java permite los espacios en blanco entre elementos del código
                fuente.




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                     Estructuras de Datos Básicas en Java.



                                    Ejemplo:




Diplomado de Programación en Java                          Modulo I - Fundamentos del Lenguaje Java
                                             Estructuras de Datos Básicas en Java.



                 Reglas para crear Identificadores
             •      Son los nombre unívocos que se le dan a las clases, métodos
                    y variables.
             •      Hay que tener presente las siguientes reglas:
                    •      Deben empezar por una letra, subrayado “_”, o signo de
                           pesos “$”.
                    •      Despues del primer caracter puede existir números.
                    •      Puede tener cualquier longitud.
                    •      Distinguen las mayúsculas de las minúsculas.
                                       “nombre” vs “Nombre”
                    •      Nunca pueden coincidir con una “keyword” (Palabra
                           reservada).

Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                                    Estructuras de Datos Básicas en Java.



             Palabras Reservadas o “Keywords”
            •      Palabras reservadas con propósito especial en el sistema y que
                   no se pueden utilizar como identificadores.
                abstract            continue         for        new          switch           volatile
                boolean              default        goto         null    synchronized          while
                 break                  do            if     package           this
                  byte               double    implements     private     threadsafe
                byvalue               else        import     protected        throw
                 case               extends     instanceof     public        throws
                 catch              FALSE            int       return      transient
                  char                 final     interface      short         TRUE
                 class               finally        long       static           try
                 const                float        native      super           void

            •      Otras palabras reservadas sin uso actual:
                 cast                future      generic       inner       operator            outer
                 rest


Diplomado de Programación en Java                                            Modulo I - Fundamentos del Lenguaje Java
                                                Estructuras de Datos Básicas en Java.



                         Ejemplos de Identificadores
                                    •   Identificadores Válidos:
                                            •    Usuario
                                            •    _usuario
                                            •    $usuario
                                            •    usu12
                                            •    Usuario
                                            •    If2
                                    •   Identificadores NO Válidos:
                                            •    if
                                            •    public
                                            •    Static


Diplomado de Programación en Java                                     Modulo I - Fundamentos del Lenguaje Java
                                                  Estructuras de Datos Básicas en Java.



                                                Variables
             •      Una variable es un contenedor de datos identificados con un
                    nombre (identificador).
             •      Dicho identificador se utilizará para referenciar el dato que
                    contiene.
             •      Toda variable deber llevar asociado un tipo que describe el
                    tipo de dato que contiene.
             •      Por tanto, una variable tiene:
                                    - Un identificador
                                    - Un tipo
                                    - Un Dato (o Valor).



Diplomado de Programación en Java                                       Modulo I - Fundamentos del Lenguaje Java
                                                  Estructuras de Datos Básicas en Java.



                             Declaración de Variables
            •      Es la sentencia mediante la cual se define una variable,
                   asignándole un tipo y una identificación.
                                - <Tipo> <identificador>;
                                - int contador;


            •      Adicionalmente se le puede asignar un valor inicial mediante
                   una asignación:
                                - <Tipo> <Identificador> = <Valor>;
                                - Contador = 10;


            •      Si no se le asigna un valor, se inicializará con el valor por
                   defecto para ese tipo.
Diplomado de Programación en Java                                       Modulo I - Fundamentos del Lenguaje Java
                                               Estructuras de Datos Básicas en Java.



                                      Tipos de Datos
              •      En Java existen dos tipo de datos genéricos:
                     •      Primitivo: boolean, char, byte, short, int, long, float, double.
                     •      Complejos: enum, string, arreglos, Clases y objetos.


              •      Existen 8 tipo de datos primitivos clasificados en 4 grupos
                     diferentes:
                     •      Lógico: Boolean.
                     •      Caracter: char.
                     •      Números Enteros: byte, short, int y long.
                     •      Números Reales: double, float.


Diplomado de Programación en Java                                     Modulo I - Fundamentos del Lenguaje Java
                                         Estructuras de Datos Básicas en Java.



                                => Primitivos \ Lógicos

      •      La keyword es boolean.
      •      Sus posibles valores son:
                    •      True
                    •      False
      •      Su valor por defecto es:
                    •      False




Diplomado de Programación en Java                              Modulo I - Fundamentos del Lenguaje Java
                                              Estructuras de Datos Básicas en Java.



                        => Primitivos \ Caracter (1/2)
           •      La ‘keyword’ es char.
           •      Representa un caracter unicode.
           •      Sus tamaño es: 16 bit’s (2 bytes).
           •      Sus posibles valores son:
                  •     Un caracter entre comillas simple: ‘a’
                  •     Un caracter especial con ‘\’ por delante:
                  •          ‘\b’ retroceso, ‘\t’ tabulador, ‘\n’ salto de línea, ‘\r’ cambio
                        de línea, ‘\”’ carácter comillas dobles (desinterpretado), ‘\’’
                        carácter comillas simples, ‘\\’ carácter barra invertida
                  •     Un código UNICODE ‘\uxxxx’ (donde xxxx es un valor en
                        hexadecimal).


Diplomado de Programación en Java                                      Modulo I - Fundamentos del Lenguaje Java
                                           Estructuras de Datos Básicas en Java.



                       => Primitivos \ Caracter (2/2)
           •      Su valor por defecto es:
                        ‘\u0000’ = null


           •      Existe un tipo complejo
                  para las cadenas de
                  caracteres: la clase String.




               NOTA: Soporta UNICODE 4.0, que define algunos caracteres que no
               caben en 16 bits, por lo que se necesita un int para representarlos (o
               dos char dentro de un string)



Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                                           Estructuras de Datos Básicas en Java.



                         => Primitivos \ Enteros (1/2)
           •      Las ‘Keywords’ son: byte, short, int y long.
           •      Su tamaño son:

                          Tipo      Tamaño                                     Valor

                        Byte        1 byte    -128 y 127

                        Short       2 bytes   -32768 y 32767

                        Int         4 bytes   -2.147.483.648 y 2.147.483.647

                        Long        8 bytes   -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807



           •      Sus posibles valores son:
                  •     Un valor decimal entero: 2 (Por defecto int), 2L (Long).
                  •     Un valor octal: 077.
                  •     Un valor hexadecimal: 0xBAAC.


Diplomado de Programación en Java                                                                 Modulo I - Fundamentos del Lenguaje Java
                                           Estructuras de Datos Básicas en Java.



                         => Primitivos \ Enteros (2/2)
                •      Su valor por defecto es:
                              0 (Cero).
                •      Ejemplo:




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                                          Estructuras de Datos Básicas en Java.



                           => Primitivos \ Reales (1/2)
            •      Las ‘Keyword’ son: float y double.
            •      Su tamaño son:

                                     Tipo    Tamaño                          Valor
                                    Float    4 bytes   + 3.40282347E+38
                                    Double   8 bytes   + 179769313486231570E+308




            •      Sus posibles valores:
                   •      Un valor decimal entero: 2
                   •      Un valor decimal real: 0.17 o 6.02E28 (por defecto double)
                   •      Un valor decimal real: 0.17F o 0.17D (redundante).



Diplomado de Programación en Java                                                    Modulo I - Fundamentos del Lenguaje Java
                                           Estructuras de Datos Básicas en Java.



                           => Primitivos \ Reales (2/2)
                •      Su valor por defecto es:
                              0 (Cero).
                •      Ejemplo:




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                            Estructuras de Datos Básicas en Java.



           => Complejos \ Cadena de Caracteres
            •      Las ‘Keyword’ el el nombre de la clase del objeto que va
                   acontener la variable.
            •      Posibles valores:
                          - Referencias a objeto (o instancias) en memoria.
            •      Su valor por defecto es:
                          - Null.
            •      Ejemplo:




Diplomado de Programación en Java                                 Modulo I - Fundamentos del Lenguaje Java
                                          Estructuras de Datos Básicas en Java.



                        => Complejos \ Enumerados
             •      Las ‘Keyword’ es: enum.
             •      Se trata de un tipo de dato complejo algo especial.
             •      Implementa una clase que tiene un atributo que puede tomar
                    varios valores y solo esos.
             •      Ejemplo:




Diplomado de Programación en Java                               Modulo I - Fundamentos del Lenguaje Java
                                       Estructuras de Datos Básicas en Java.



                          => Primitivos vs Complejos
     •      Una variable de tipo primitiva contiene el dato directamente.
                                                                      Dato
                                                                    00001010



                                                               a



     •      Una variable de tipo complejo contiene una referencia (puntero) a la
            zona de memoria donde esta el objeto.
                                                                   Referencia


                                                                                 hola
                                                               s




Diplomado de Programación en Java                            Modulo I - Fundamentos del Lenguaje Java
                                      Estructuras de Datos Básicas en Java.


                                    Ejemplos:




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                      Estructuras de Datos Básicas en Java.


                                    Ejemplos:




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                          Estructuras de Datos Básicas en Java.


                              Ámbito de las Variables:
            •      El ámbito de una variable es la zona de código donde se puede
                   referenciar dicha variable a través de su identificador.
            •      El lugar de definición de una variable establece su ambito.
            •      Ámbitos:
                   1. Atributos (o variables miembros).
                   2. Parámetros de métodos.
                   3. Variables locales: siempre hay que inicializarlas.
                   4. Variables de bloque: siempre hay que inicializarlas.




Diplomado de Programación en Java                               Modulo I - Fundamentos del Lenguaje Java
                                       Estructuras de Datos Básicas en Java.


                              Ámbito de las Variables:


                Atributos

                Parámetros


                Locales

                De Bloque




Diplomado de Programación en Java                            Modulo I - Fundamentos del Lenguaje Java
                                          Estructuras de Datos Básicas en Java.


                                    Ejemplo Incorrecto:




Diplomado de Programación en Java                               Modulo I - Fundamentos del Lenguaje Java
                                         Estructuras de Datos Básicas en Java.


                                    Ejemplo Correcto:




Diplomado de Programación en Java                              Modulo I - Fundamentos del Lenguaje Java
                                                  Estructuras de Datos Básicas en Java.


                            Conversiones entre Tipos
           •      Existe 4 entornos de conversion en java:
                        Promoción aritmética:
                               ej: Short          int     float
                        Asignación: (ej: Long i=2;)
                        Llama a métodos con parámetros:
                        f(long p)          f(5)
                        Casting: (ej: int i = (int)42L;)
           •      Las conversiones implícitas se resuelven en tiempo de
                  compilación.
           •      El upcasting se realiza implícitamente.
           •      El downcasting se realiza explícitamente y se resuelve en tiempo
                  de ejecución.
Diplomado de Programación en Java                                       Modulo I - Fundamentos del Lenguaje Java
                                                Estructuras de Datos Básicas en Java.


                                           Ejercicio:
                    •      Identificar que sentencias son correcta y cuales no.

                                     int x = 34.5;
                                     boolean boo = x;
                                     int g = 17;
                                     int y = g;
                                     y = y + 10;
                                     short s;
                                     s = y;
                                     byte b = 3;
                                     byte v = b;
                                     short n = 12;
                                     v = n;
                                     byte k = 128;
                                     int p = 3 * g + y;




Diplomado de Programación en Java                                     Modulo I - Fundamentos del Lenguaje Java
                                           Estructuras de Datos Básicas en Java.


                                    Ejercicio (Solución)




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                                    Estructuras de Datos Básicas en Java.


                                            Operadores
             •      Los operadores realizan funciones sobre uno, dos o mas
                    operandos, por tanto tenemos:
                    •      Operadores unitarios: Puede ser prefijos o posfijos.
                                    op operador o operador op
                    •      Operadores Binarios:
                                    contador + 1;
                    •      Operadores ternarios.
                                    operador ? operador : operador
                    •      Los operadores siempre devuelven un valor que depende
                           del operador y de los operandos.



Diplomado de Programación en Java                                         Modulo I - Fundamentos del Lenguaje Java
                                                  Estructuras de Datos Básicas en Java.


                                    Tipos de Operadores
               •      Los operadores se pueden dividir en las siguinetes categorias:
                                    1. Aritméticos.
                                    2. Relacionales.
                                    3. Condicionales.
                                    4. De desplazamiento.
                                    5. Lógicos.
                                    6. De Asignación.
                                    7. Entre otros.




Diplomado de Programación en Java                                       Modulo I - Fundamentos del Lenguaje Java
                                                       Estructuras de Datos Básicas en Java.


                               Operadores Aritméticos
                   •      Tenemos los siguientes operadores Aritméticos:



                                    Operador             Descripcion              Ejemplo

                                       +       Suma dos operandos                Op1 + Op2

                                       -       Resta dos operandos               Op1 - Op2

                                       *       Multiplica dos operandos          Op1 * Op2

                                       /       Divide dos operandos              Op1 / Op2

                                       %       Calcula el resto de la division   Op1 % Op2




Diplomado de Programación en Java                                                            Modulo I - Fundamentos del Lenguaje Java
                                                          Estructuras de Datos Básicas en Java.


                               Operadores Aritméticos
                   •      De que tipo es el valor que devuelven?

                                     Tipo de
                                      Valor                    Cuando Aplica?

                                    Long       Cuando ninguno de los operandos es 'float' o
                                               'double' y hay al menos uno que es 'long'

                                    Int        Cuando ninguno de los operandos son 'float',
                                               'double' o 'long'.

                                    Double     Cuando al menos hay uno de los operandos es
                                               'double'.

                                    Float      Cuando ninguno de los operandos es 'double' y
                                               hay al menos un que es 'float'.




Diplomado de Programación en Java                                                              Modulo I - Fundamentos del Lenguaje Java
                                                             Estructuras de Datos Básicas en Java.


                               Operadores Aritméticos
                        •      Tambien existen operadores Aritméticos unitarios:


                                    Operador                               Descripcion

                                    +op        Convierte a 'op' en int en caso de que fuese byte, short o char.

                                    -op        Cambia el signo a 'op'.

                                    ++op       Incrementa a'op' en 1 (evaluando 'op' despues de incrementarse).

                                    op++       Incrementa a'op' en 1 (evaluando 'op' antes de incrementarse).

                                    --op       Decrementa a'op' en 1 (evaluando 'op' despues de decrementarse).

                                    op--       Decrementa a'op' en 1 (evaluando 'op' antes de decrementarse).




Diplomado de Programación en Java                                                                Modulo I - Fundamentos del Lenguaje Java
                                                             Estructuras de Datos Básicas en Java.


                             Operadores Relaciónales
                       •      Tenemos los siguientes operadores relacionales:

                                    Operador                       Descripcion                       Ejemplo

                                       >       Compara si un operando es mayor que otro            Op1 > Op2

                                       <       Compara si un operando es menor que otro            Op1 < Op2

                                      ==       Compara si un operando es igual que otro            Op1 == Op2

                                      !=       Compara si un operando es distinto que otro         Op1 != Op2

                                      >=       Compara si un operando es mayor e igual que otro    Op1 >= Op2

                                      <=       Compara si un operando es menor e igual que otro    Op1 <= Op2




Diplomado de Programación en Java                                                                 Modulo I - Fundamentos del Lenguaje Java
                                                              Estructuras de Datos Básicas en Java.


                           Operadores Condiciónales
          •     Suelen convinarse con los operadores relacionales para crear
                expresiones mas complejas.


          •     Tenemos los siguientes operadores condiciónales.


                             Operador                            Descripcion                              Ejemplo

                               &&       AND Logico, checa si ambos operandos son verdaderos           (Op1) && (Op2)

                                ||      OR Logico, checa si uno de los dos operandos son verdaderos   (Op1) || (Op2)

                                !       NOT Logico, niega al operador                                 !(Op1)




Diplomado de Programación en Java                                                                       Modulo I - Fundamentos del Lenguaje Java
                                                            Estructuras de Datos Básicas en Java.


                    Operadores de Desplazamiento
                     •      Tenemos los siguientes operadores:


                              Operador                         Descripcion                            Ejemplo

                                    >>                                                             Op1 >> Op2
                                         Desplaza los bit del primer operando hacia la derecha
                                         tantas veces como indique el segundo operando

                                    <<                                                             Op1 << Op2
                                         Desplaza los bit del primer operando hacia la izquierda
                                         tantas veces como indique el segundo operando

                                >>>      Desplaza los bit del primer operando hacia la derecha     Op1 >>> Op2
                                         tantas veces como indique el segundo operando pero
                                         sin signo




Diplomado de Programación en Java                                                                    Modulo I - Fundamentos del Lenguaje Java
                                          Estructuras de Datos Básicas en Java.


                                    Operadores Lógicos
       •      Tenemos los siguientes operadores Lógicos:
              1. ‘&’ AND lógico a nivel de bit (Op1 & Op2).
                                                                         Op1    Op2        Resultado
                                                                          0           0        0
                                                                          0           1        0
                                                                          1           0        0
                                                                          1           1        1




              2. ‘|’ OR lógico a nivel de bit (Op1 | Op2)
                                                                          Op1    Op2       Resultado
                                                                           0           0       0
                                                                           0           1       1
                                                                           1           0       1
                                                                           1           1       1




              3. ‘^’ XOR lógico a nivel de bit (Op1 ^ Op2)
                                                                          Op1    Op2       Resultado
                                                                           0           0       0
                                                                           0           1       1
                                                                           1           0       1
                                                                           1           1       0




              4. ‘~’ Complemento a nivel de bit (~Op1)
Diplomado de Programación en Java                               Modulo I - Fundamentos del Lenguaje Java
                                                         Estructuras de Datos Básicas en Java.


                             Operadores de Asignación
                  •     Tenemos los siguientes operadores de asignación:


                         Operador                           Descripcion                           Ejemplo

                         =          Guarda el valor del segundo operando en el primero            Op1 = Op2

                         +=         Guarda la suma de los dos operandos en el primero             Op1 += Op2

                         -=         Guarda la resta de los dos operandos en el primero            Op1 -= Op2

                         *=         Guarda la multiplicacion de los dos operandos en el primero   Op1 *= Op2

                         /=         Guarda la division de los dos operandos en el primero         Op1 /= Op2




Diplomado de Programación en Java                                                           Modulo I - Fundamentos del Lenguaje Java
                                                     Estructuras de Datos Básicas en Java.


                                     Otros Operadores
                            •    Existen otros operadores en Java como:

                        Operador                          Descripcion                        Ejemplo

                        ?:           se trata de una abreviatura de if-then-else             Op1 ? Op2 : Op3

                        []
                                     Utilizado para declarar, crear y acceder a los arrays

                        .            utilizado para acceder a metodos y/o atributos de
                                     objetos

                        (Parametros) Utilizado para pasar parametros a un metodo.

                        (Tipo)       Utilizado para realizar castings (Conversiones)

                        New          Utilizaddo para crear objetos nuevos

                        Instanceof   Checa si el priemro operando es una instancia del
                                     segundo operando



Diplomado de Programación en Java                                                        Modulo I - Fundamentos del Lenguaje Java
                                      Estructuras de Datos Básicas en Java.


                                    Ejercicios




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                      Estructuras de Datos Básicas en Java.


                                    Ejercicios




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                      Estructuras de Datos Básicas en Java.


                                    Ejercicios




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                  Control de Flujo en Java.




INSTITUTO TECNOlógico DE SONORA                           Por: Juan Manuel Osuna
                                                            Control de Flujo en Java.



                                      Temas a Tratar
                                • Sentencias de Control de Flujo.

                                • Sentencia If … then … else.

                                • Sentencia Swich … case.

                                • Sentencias While y Do … While.

                                • Sentencia For…

                                • Sentencias de Ruptura.




Diplomado de Programación en Java                                    Modulo I - Fundamentos del Lenguaje Java
                                                        Control de Flujo en Java.



                     Sentencias de Control de Flujo
              •      Sin las sentencias de control de flujo Java se ejecutaría
                     línealmente desde la primera línea de código hasta la útlima.


              •      Existen 4 tipos de sentencia de control de flujo de datos en
                     Java:
                     1. Bucles: While, Do while, For y For/In
                     2. Bifurcaciones: If…Then…Else, Switch…Case
                     3. Gestion de excepciones: Try…Catch…Finally, Throw.
                     4. De Ruptura: Break, Continue, Label: y Return.




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                                      Control de Flujo en Java.



                            Sentencia If … Then … Else
           •      Las instrucciones If…Then se utilizan para controlar la ejecución
                  de un único bloque de código.
           •      Las instrucciones If…Then…Else se utilizan para controlar la
                  ejecución de dos secciones de código mutuamente excluyentes
           •      Sintaxis:
                                                           Sentencia_1;
           if (expresion)           if (expresion)
           {                        {
           sentencia;               sentencia;
           }                        }                                     No

                                    else                       ?                 Sentencia_3;
                                    {
                                    sentencia;
                                                                     Si
                                    }

                                                           Sentencia_2;



Diplomado de Programación en Java                               Modulo I - Fundamentos del Lenguaje Java
                                              Control de Flujo en Java.



                                    Ejemplo




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                                   Control de Flujo en Java.



                            Sentencia Switch … Case
      •      La sentencia “Switch” es un caso particular de la sentencia
             if…then…else. Evalúa una expresión del tipo ‘int’ o que pueda ser
             convertida a ‘int’ de forma implícita.
      •      Sintaxis:
                                                       Sentencia_1;
                switch (intexpresion)
                {
                  case intexpresion:
                    sentencias;
                  break;                                   ?
                …
                …
                  default:
                    sentencias;
                }
                                         Case_1;         Case_2;                 default;




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                              Control de Flujo en Java.



                                    Ejemplo




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                                 Control de Flujo en Java.



                    Sentencias While y Do … While
         •     La sentencia While se utiliza       •   Sintaxis:
               para ejecutar continuamente un
               bloque de código mientras que            while (Expresion)
                                                        {
               la condición del While sea True            Sentencias;
               (Verdadera).                             }




         •     La sentencia Do…While, es           •   Sintaxis:
               parecida a la sentencia while
               pero asegura que como mínimo               do
               el bloque de código se ejecute             {
               por lo menos una vez.                        Sentencias;
                                                          }
                                                          While (Expresion)




Diplomado de Programación en Java                          Modulo I - Fundamentos del Lenguaje Java
                                              Control de Flujo en Java.



                                    Ejemplo




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                                                     Control de Flujo en Java.



                                      Sentencia For …
            •      La sentencia “For…” facilita la ejecución de un bloque de
                   código un número determinado de veces.
            •      Sintaxis:

                                    For (Inicializacion; Terminacion; Incremento)
                                    {
                                      Sentencias;
                                    }




                   NOTA: Las variables definidas en la sentencia de inicialización
                   son locales al bloque. Por tanto dejan de existir una vez se haya
                   terminado el bucle.

Diplomado de Programación en Java                                                   Modulo I - Fundamentos del Lenguaje Java
                                              Control de Flujo en Java.



                                    Ejemplo




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                                              Control de Flujo en Java.



                                Sentencia For … / In …
             •      Esta nueva sentencia del J2SE 5.0 nos facilita la iteración por
                    los elementos de cualquier tipo de colección: arrays, listas, etc.
             •      Sintaxis:

                                       For (Inicializacion: coleccion)
                                       {
                                         Sentencias;
                                       }




             •      Básicamente se trata una simplificación a la hora de compilar.
             •      Es decir, al final, el compilador convierte el código en una
                    sentencia for convencional.



Diplomado de Programación en Java                                        Modulo I - Fundamentos del Lenguaje Java
                                              Control de Flujo en Java.



                                    Ejemplo




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                                        Control de Flujo en Java.



                                Sentencias de Ruptura
              •      Break: sirve para detener la ejecución tanto de los bucles
                     como de la sentencia switch. Y por tanto salta a la siguiente
                     línea de código despues del bucle o switch.


              •      Continue: sirve para detener la ejecución del bloque de
                     código de un bucle y volver a evaluar la condición de este.


              •      Return: sirve para finalizar la ejecución de un método.




Diplomado de Programación en Java                                Modulo I - Fundamentos del Lenguaje Java
                                              Control de Flujo en Java.



                                    Ejemplo




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                  Paradigma Orientado a Objetos.




INSTITUTO TECNOlógico DE SONORA                             Por: Juan Manuel Osuna
                                                 Paradigma Orientado a Objetos.



                                    Temas a Tratar
                       • Paradigmas de Programación.

                       • Clases y Objetos.

                       • Modificadores de Acceso.

                       • Principios de la Orientación a Objetos.

                       • Conceptos del Diseño Orientado a Objetos




Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                        Paradigma Orientado a Objetos.



                        Paradigmas de Programación
     • Hay para todos los gustos
        – Estructurados (C, Pascal, Basic, etc.)
        – Funciónales (CAML)
        – Declarativos (Prolog)
        – Orientados a Objetos (C#, VB.NET, Smalltalk, Java)
        – Orientados a Aspectos
        – Híbridos (Lisp, Visual Basic)
        – Incomprensibles....

     • Cada enfoque tiene sus ventajas y desventajas.

     • Cada uno es más apropiado para ciertas cosas


Diplomado de Programación en Java                       Modulo I - Fundamentos del Lenguaje Java
                                         Paradigma Orientado a Objetos.



                            El mundo color de Objetos
     • Todo el mundo está compuesto de entidades que se relacionan e
       interactúan entre si

     • ¿Qué es un Objeto?
        – Todo es un Objeto ¡¿~?!

     • ¿Es lo mismo de siempre con otro nombre?
        – Pensar en Objetos ….

     • No es el último grito de la moda (1980’s)




Diplomado de Programación en Java                       Modulo I - Fundamentos del Lenguaje Java
                                           Paradigma Orientado a Objetos.



                            El mundo color de Objetos
     • ¿Por qué Orientación a Objetos (OO)?

            –   Se parece más al mundo real.
            –   Permite representar modelos complejos.
            –   Muy apropiada para aplicaciones de negocios.
            –   Las empresas ahora sí aceptan la OO.
            –   Las nuevas plataformas de desarrollo la han adoptado (Java /
                .NET)




Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                             Paradigma Orientado a Objetos.



                                    ¿Qué es un Objeto?
     • Informalmente, un objeto representa una entidad del mundo real.

     • Entidades Físicas
            • (Ej.: Vehículo, Casa, Producto)

     • Entidades Conceptuales
        – (Ej.: Proceso Químico, Transacción Bancaria)

     • Entidades de Software
        – (Ej.: Lista Enlazada, Interfaz Gráfica)




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                             Paradigma Orientado a Objetos.



                                    ¿Qué es un Objeto?
     • Definición Formal (Rumbaugh):
        – “Un objeto es un concepto, abstracción o cosa con un significado
          y límites claros en el problema en cuestión”

     • Un objeto posee (Booch):
        – Estado
        – Comportamiento
        – Identidad




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                           Paradigma Orientado a Objetos.



                                Un objeto posee Estado
     • Lo que el objeto sabe.

     • El estado de un objeto es una de las posibles condiciones en que el
       objeto puede existir.

     • El estado normalmente cambia en el transcurso del tiempo.

     • El estado de un objeto es implementado por un conjunto de
       propiedades (atributos), además de las conexiones que puede tener
       con otros objetos.




Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                       Paradigma Orientado a Objetos.



                  Un objeto posee Comportamiento
     • Lo que el objeto puede hacer.

     • El comportamiento de un objeto determina cómo éste actúa y
       reacciona frente a las peticiones de otros objetos.

     • Es modelado por un conjunto de mensajes a los que el objeto puede
       responder (operaciones que puede realizar).

     • Se implementa mediante métodos.




Diplomado de Programación en Java                     Modulo I - Fundamentos del Lenguaje Java
                                        Paradigma Orientado a Objetos.



                            Un objeto posee Identidad
     • Cada objeto tiene una identidad única, incluso si su estado es
       idéntico al de otro objeto.




Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                             Paradigma Orientado a Objetos.



                                    ¿Qué es una Clase?
     • Una clase es una descripción de un grupo de objetos con:
        – Propiedades en común (atributos)
        – Comportamiento similar (operaciones)
        – La misma forma de relacionarse con otros objetos (relaciones)
        – Una semántica en común (significan lo mismo)

     • Una clase es una abstracción que:
        – Enfatiza las características relevantes
        – Suprime otras características (simplificación)

     • Un objeto es una instancia de una clase



Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                            Paradigma Orientado a Objetos.



                                    Objetos y Clases
     • Una clase es una definición abstracta de un objeto.
        – Define la estructura y el comportamiento compartidos por los
          objetos.
        – Sirve como modelo para la creación de objetos .

     • Los objetos pueden ser agrupados en clases.




Diplomado de Programación en Java                          Modulo I - Fundamentos del Lenguaje Java
                                                  Paradigma Orientado a Objetos.



                                    Ejemplo de una Clase
                              • Clase: Curso

                              • Estado (Atributos)
                                 – Nombre
                                 – Ubicación
                                 – Días Ofrecidos
                                 – Horario de Inicio
                                 – Horario de Término

                              • Comportamiento (Métodos)
                                 – Agregar un Alumno
                                 – Borrar un Alumno
                                 – Entregar un Listado del Curso
                                 – Determinar si está Completo


Diplomado de Programación en Java                                  Modulo I - Fundamentos del Lenguaje Java
                                          Paradigma Orientado a Objetos.



                              Modificadores de Acceso
     • Permiten definir el nivel de acceso (visibilidad) de los miembros
       (atributos o métodos) de una clase.

            – Publico: Cualquier clase puede “ver” los miembros públicos de
              otra clase
            – Privado: Sólo la clase puede ver sus propios miembros privados

     • Existen otros dos modificadores para propósitos específicos
       (Paquete, Protegido).




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                    Paradigma Orientado a Objetos.



         Elementos que Componen a los Objetos




Diplomado de Programación en Java                  Modulo I - Fundamentos del Lenguaje Java
                                          Paradigma Orientado a Objetos.



                                    Abstracción
     • Una abstracción denota características esenciales de un objeto,
       distinguibles de otro tipo de objetos y provee limites conceptuales a la
       perspectiva del observador.




Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                         Paradigma Orientado a Objetos.



                                    Abstracción
   • Ignorancia Selectiva.
      – La abstracción nos ayuda a trabajar con cosas complejas
      – Se enfoca en lo importante
      – Ignora lo que no es importante (simplifica)

   • Una clase es una abstracción en la que:
         • Se enfatizan las características relevantes
         • Se suprimen otras características

   • Una clase debe capturar una y solo una abstracción clave




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                           Paradigma Orientado a Objetos.



                                    Encapsulamiento
   • Mientras la abstracción permite pensar en que hacer, la encapsulación
     se dirige en como se va a realizar, permitiendo cambiar programas en
     forma confiable con un mínimo de esfuerzo por esta barrera.

   • La abstracción se enfoca en el funcionamiento observable del objeto.

   • La encapsulación se enfoca en la implementación que da origen a ese
     funcionamiento.




Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                           Paradigma Orientado a Objetos.



                                    Encapsulamiento
     • Principio que establece que los atributos propios de un objeto no
       deben ser visibles desde otros objetos.
        – Deben ser declarados como privados

     • Permite abstraer al resto del mundo de la complejidad de la
       implementación interna.

     • Permite exponer el estado del objeto sólo a través del
       comportamiento que le hayamos definido mediante miembros
       públicos.

     • ¿Por qué es útil?
        – Punto de Control/Validación
        – Mejor respuesta ante los Cambios



Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                        Paradigma Orientado a Objetos.



                                    Jerarquía
     • Un conjunto de abstracciones en varias ocasiones pueden formar
       una jerarquía.

     • Al identificar en el diseño, el entendimiento del problema se
       simplifica.




     • La herencia representa una jerarquía de abstracciones en donde una
       Subclase (Clase Hijo) hereda de una o mas Superclases (Clases
       Padre).

Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                         Paradigma Orientado a Objetos.


                                    Modularidad
     • La modularidad se realiza para dividir un sistema en módulos
       compilables separadamente, pero con ciertas conexiones mínimas de
       dependencia con otros módulos.




     • Para lograr una buena modularidad, los módulos deben construirse
       con:




Diplomado de Programación en Java                       Modulo I - Fundamentos del Lenguaje Java
                                        Paradigma Orientado a Objetos.


                                    Herencia
  • Es una relación entre clases en la cual                Clase Base
                                                           Clase Base
    una clase comparte la estructura y
    comportamiento definido en otra clase                    Transporte
    (Grady Booch)                                          -pasajeros
                                                           +Avanzar()
                                                           +Detenerse()
  • Cada clase que hereda de otra posee:
     – Los atributos de la clase base
       además de los propios
     – Soporta todos o algunos de los              Automóvil                   Avión
       métodos de la clase base

  • Una subclase hereda de una clase base
                                                       Clases Derivadas
                                                       Clases Derivadas
                                                          o subclases
                                                           o subclases

Diplomado de Programación en Java                      Modulo I - Fundamentos del Lenguaje Java
                                           Paradigma Orientado a Objetos.



                                    Herencia
     • Herencia “Es-Un”: herencia real, donde la subclase es                    un tipo
       específico de la superclase.

            – Un Cuadrado es un Rectángulo
            – Un perro es un mamífero
            – Un automóvil es un vehículo a motor




Diplomado de Programación en Java                         Modulo I - Fundamentos del Lenguaje Java
                                          Paradigma Orientado a Objetos.



                                    Polimorfismo
      • Es la propiedad que tienen los objetos de permitir invocar
        genéricamente un comportamiento (método) cuya implementación
        será delegada al objeto correspondiente recién en tiempo de
        ejecución.

      • El polimorfismo tiende a existir en las relaciones de herencia, pero
        no siempre es así




Diplomado de Programación en Java                        Modulo I - Fundamentos del Lenguaje Java
                                             Paradigma Orientado a Objetos.



                                    Polimorfismo
     • La definición del método reside en la clase base.
     • La implementación del método reside en la clase derivada.
     • La invocación es resuelta al momento de ejecución.

                                        Transporte
                                          Avanzar

                                          Frenar




Diplomado de Programación en Java                           Modulo I - Fundamentos del Lenguaje Java
                                       Paradigma Orientado a Objetos.


                                    Ejemplo




Diplomado de Programación en Java                     Modulo I - Fundamentos del Lenguaje Java
                                       Paradigma Orientado a Objetos.



                                    Ejemplo




Diplomado de Programación en Java                     Modulo I - Fundamentos del Lenguaje Java
                                   Paradigma Orientado a Objetos.




                                  GRACIAS…!!!




INSTITUTO TECNOlógico DE SONORA                              Por: Juan Manuel Osuna

								
To top