SlideShare ist ein Scribd-Unternehmen logo
1 von 22
I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2   1   Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Tema 1: Introducción a la OOP y el lenguaje Java
      1. Programación orientada a objetos
      2. El lenguaje Java
      3. Compilación, bytecode y JVMs
      4. Entornos de desarrollo Java
      5. Java vs otros lenguajes OO




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         2              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Programación orientada a objetos
      •Aparece a finales de los 60, pero es a principios de los 80 cuando con el lenguaje
      Smalltalk comienza un interés claro hacia este paradigma.

      •La programación orientada a objetos es el paradigma de programación y análisis y
      diseño de aplicaciones claramente dominante en la actualidad.

      •Hoy prácticamente no se concibe un lenguaje de programación sin características
      de orientación a objetos: Eiffel, C++, Java, C#, etc.




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         3              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Programación orientada a objetos
      Las ventajas del paradigma OO son múltiples:

      •Es intuitiva, describe un problema en términos similares a los que utiliza la mente
      humana.
      •Permite construir soluciones más seguras y con un mantenimiento más sencillo.
      •Fomenta la reutilización y el trabajo en equipo. Escalabilidad de las aplicaciones.

      Las características principales del paradigma OO:

      •Incorpora los conceptos de abstracción, ocultación de información y encapsulación
      heredados de los tipos de datos abstractos.

      •Incorpora mecanismos específicos y extremadamente poderosos como son la
      •herencia, el polimorfismo y la ligadura dinámica

      •Admite de manera muy natural en algunos lenguajes el soporte de genericidad
      (patrones) y la definición de operadores. No soportados por Java.


I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         4              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Programación orientada a objetos
      El desarrollo siguiendo el enfoque orientado a objetos es un proceso integral que
      incluye métodos específicos de análisis y diseño, notación gráfica (UML) y lenguajes
      de programación orientados a objetos.

      Las soluciones obtenidas durante la fase de análisis y diseño no son específicas
      para ningún lenguaje de programación orientado a objetos




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         5              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          El Lenguaje Java
      Desarrollado en los laboratorios de Sun, es uno de los lenguajes de programación
      orientado a objetos que mayor repercusión ha tenido en los últimos años.

      •Basado en C++ pero simplificado, mucho más fácil de usar, de más alto nivel y
      menos propenso a errores.
      •Amplísima biblioteca estándar de clases predefinidas.
      •Las aplicaciones Java pueden ser ejecutadas indistintamente en cualquier
      plataforma sin necesidad de recompilación.
      •Amplio espectro: programación tradicional, distribuida, GUI, Web, dispositivos
      móviles, etc.
      •Gestión avanzada de memoria mediante el uso de un recolector de basura.
      •Gestión avanzada de errores, tanto en tiempo de compilación como de ejecución.
      •Soporte sencillo de múltiples hebras de ejecución.
      •Pueden integrarse módulos escritos en C/C++.
      •Lenguaje abierto. Kits de desarrollo y documentación gratuitos en la red




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         6              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          El Lenguaje Java
      Existen distintas “ediciones” de Java para el desarrollo de aplicaciones en distintos
      ámbitos:

      •Aplicaciones de propósito general (J2SE)
      •Aplicaciones de gestión en entornos empresariales (J2EE)
      •Aplicaciones para teléfonos móviles, PDAs y otros dispositivos electrónicos que
      permitan aplicaciones empotradas (J2ME)




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         7              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          El Lenguaje Java
      Existen dos kits diferentes que pueden ser descargados de la página oficial de Sun:

      •El Java Development Kit (JDK) permite desarrollar y ejecutar aplicaciones Java
      •El Java Runtime Environment (JRE) permite únicamente la ejecución

      J2SE incluye bibliotecas muy extensas y completas, que permiten la implementación
      de casi cualquier tipo de aplicación:
      •Seguridad                                             •Interfaz de usuario (AWT, SWING)
      •EEDDs                                                 •Gráficos 2D
      •Componentes (JavaBeans)                               •Manipulación, carga y descarga de
      •Internacionalización                                  imágenes
      •E/S                                                   •Impresión
      •XML                                                   •Acceso a bases de datos (JDBC)
      •Redes y acceso a Internet                             •Gestión       de      preferencias y
      •Programación distribuida (RMI, CORBA)                 configuraciones
      •Matemática de precisión arbitraria
      •Sonido

I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2           8             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Compilación, bytecode y JVMs
      Java sigue un esquema no tradicional de compilación/ejecución:

      •La compilación genera un ejecutable en bytecode o código intermedio
      independiente.

      •Para su ejecución se requiere un JRE específico de la plataforma. El JRE está
      formado por una máquina virtual java (JVM) y las librerías de clases.

      •La JVM interpreta el bytecode o realiza su compilación just-in-time para que su
      •ejecución sea más eficiente
                                                                            Java
      Ventas.java
                                                                        (windows)
      class Ventas{
                 …                    Ventas.class
      }                                                                     Java
                                                                           (linux)
                         Compilación  Usuario.class
      class Usuario{                                                        Java
                                     Archivos de clases en
                 …                    Bytecode o código                  (Sun OS)
      }    Código Fuente                  intermedio       Ejecución Interpretada con MV especifica
I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         9              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Compilación, bytecode y JVMs
      Ventajas de este sistema:

      •Se compila la aplicación una única vez y los ejecutables en bytecode obtenidos son
      válidos para cualquier plataforma. El código fuente queda a salvo.

      •Es muy robusto. La máquina virtual Java es capaz de detectar y notificar gran
      cantidad de errores durante la ejecución de la aplicación (como accesos a elementos
      fuera de un vector)

      •El recolector de basura no ocupa espacio en el ejecutable, ya que viene integrado
      en la JVM

      •Los ejecutables son pequeños porque las librerías de clases vienen proporcionadas
      junto a la JVM en el JRE de la plataforma concreta




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         10             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Compilación, bytecode y JVMs
      Inconvenientes:

      •Velocidad. Evidentemente la interpretación o incluso compilación just-in-time del
      bytecode produce aplicaciones más lentas que en el caso de la ejecución directa de
      un binario. El recolector de basura puede suponer una sobrecarga adicional al
      procesador.

      •La generalidad tiene como inconveniente que no se aprovecha totalmente la
      potencia de la máquina y del sistema operativo. Por ejemplo, el aspecto de una
      aplicación Java puede resultar simple y poco atractivo en comparación con las
      aplicaciones nativas




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         11             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Entornos de Desarrollo Java
      •JDK. El kit de desarrollo básico proporcionado por Sun. Es lo mínimo que se necesita
      para desarrollar. Útil si se necesita compilar aplicaciones Java de manera esporádica
      o en general para programadores con espíritu “espartano”. Puede bajarse
      gratuitamente para cualquier plataforma de java.sun.com

      •NetBeans. El IDE Java más popular, realizado íntegramente en Java (y por tanto
      multiplataforma). Consume bastantes recursos. Tiene una arquitectura extensible
      con módulos específicos para desarrollo web, aplicaciones móviles, diseño UML, etc.
      Puede obtenerse gratuitamente de www.netbeans.org

      •Eclipse. Junto a netBeans, el entorno de desarrollo Java gratuito más utilizado.
      También permite el desarrollo en C++ y otros lenguajes de programación. Puede
      descargarse en www.eclipse.org

      •Borland JBuilder. Excelente entorno integrado de desarrollo Java de Borland.
      Existen versiones limitadas que pueden bajarse de www.borland.com

      •Microsoft Visual J++. Uno de los más populares, aunque las aplicaciones obtenidas
      pueden presentar problemas de compatibilidad con el SDK oficial de Java.
I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         12             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          El primer programa Hola.java
  Es de consenso que el entorno JDK no es el más adecuado para el desarrollo de
  aplicaciones Java, debido a funcionar única y exclusivamente mediante comandos de
  consola, ya que hoy en día la programación se suele ayudar de entornos visuales, como
  JBuilder, JCreator o muchos otros, que facilitan enormemente la tarea.

  Sin embargo, puede ser un entorno bastante útil para aprender el lenguaje, ya que
  aunque los entornos visuales nos hagan mucho trabajo siempre es necesario ir al
  código para modificarlo y obtener el comportamiento deseado, lo cual quiere decir que
  necesitamos dominar el lenguaje y es más fácil llegar a este dominio escribiendo
  códigos completos en un entorno “hostil” que no nos ayuda, que simplemente
  remodelando códigos ya generados por entornos visuales.




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         13             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          El primer programa Hola.java
       /**
        * @fileName Hola.java
        * @author Oscar Roa
        */
       class Hola{
                 public static void main(String args[]){
                           System.out.println(“Hola Mundo desde Java!”);
                 }
       }
    Para compilar el ejemplo:
    Javac. Es el comando compilador de Java. Su sintaxis es:

                                                  #javac Hola.java

    La entrada de este comando ha de ser necesariamente un fichero que contenga
    código escrito en lenguaje Java y con extensión .java. El comando nos creará un
    fichero .class por cada clase que contenga el fichero Java. Los ficheros .class
    contienen código bytecode, el código que es interpretado por la máquina virtual Java.
I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         14             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          El primer programa Hola.java
    Para ejecutar el ejemplo:
    Java. Es el intérprete de Java. Permite ejecutar aplicaciones que previamente hayan
    sido compiladas y transformadas en ficheros .class. Su sintaxis es:

                                                      #java Hola

    No es necesario aquí suministrar la extensión del fichero, ya que siempre ha de ser
    un fichero .class

    Algunos Ejercicios de practica.

    •Calcular la suma de 2 números.
    •Calcular el Área de un circulo.
    •Calcular la suma de n números.
    •Calcular la suma de n números impares.
    •Calcular el factorial de un numero dado.
    •Obtener el código Ascii.
    •Calcular la seria Fibonnaci.

I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         15             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Tema 2: Programación Orientada a Objetos en Java

      1. Introducción                                            15. Herencia múltiple
      2. Clases de objetos                                       16. Polimorfismo
      3. Protección de miembros                                  17. Ligadura dinámica
      4. Protección de clases                                    18. Información de clases en tiempo de
      5. Inicialización y finalización                               ejecución
      6. Creación de objetos                                     19. Otros temas de interés en Java
      7. Trabajando con objetos
      8. Relaciones entre objetos
      9. Clases anidadas e interiores
      10. Autoreferencias
      11. Aplicaciones orientadas a objetos
      12. Herencia
      13. Adición, redefinición y anulación
      14. Protección y herencia




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2             16             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Clases

        Las clases de objetos representan conceptos o entidades significativos en un
      problema determinado.
        Una clase describe las características comunes de un conjunto de objetos,
      mediante dos elementos:
                  Atributos (o variables miembro, variables de clase). Describen el estado
      interno de cada objeto
                   Operaciones (o métodos, funciones miembro). Describen lo que se
      puede hacer con el objeto, los servicios que proporciona

                                                                                 Nombre de la Clase
                                                            Cuenta
                                              número: String
                            Atributos         titular: String
                                              saldo: Float
                                              interesAnual: Float
                                              ingreso(cantidad: Floatl)
                          Operaciones
                                              reintegro(cantidad: Floatl)
                                              ingresoInteresMes()
I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         17             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                           PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Clases

      ●Durante la ejecución de la aplicación se producirá la instanciación de la clase, es
      decir, la creación de los objetos que representan cada uno de los individuos con sus
      características propias, es decir, valores específicos para sus atributos.
                                                                                              a : Cuenta
                    Cuenta                                            número = “00982”
                                                                      titular = “Luis Cruz”
      número: String                                                  Saldo = 2500.00
                                                                      interesAnual = 0.23
      titular: String
      saldo: Float
      interesAnual: Float
      ingreso(cantidad: Floatl)                                                                 número = “00922”
                                                                              Objetos           titular = “Maria ”
      reintegro(cantidad: Floatl)                                                               Saldo = 1500.00
      ingresoInteresMes()                                                                       interesAnual = 1.23

                 Clase                                       número = “0282”
                                                             titular = “Oscar”
                                                             Saldo = 12500.00
                                           c : Cuenta        interesAnual = 0.02                    b: Cuenta




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2                     18              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
             Clases

        La implementación de esta clase en Java se realizaría en un fichero con nombre
      Cuenta.java, y su contenido sería el siguiente:
         class Cuenta {
                   long numero;
                   String titular;
                   float saldo;
                   float interesAnual;

                      void ingreso(float cantidad) { }
                      void reintegro(float cantidad) { }
                      void ingresoInteresMes() { }
                      boolean enRojos() { }
                      float leerSaldo() { }
         }

      Los atributos pueden ser de cualquiera de los tipos básicos de Java:
     boolean, char, byte, short, int, long, float y double, referencias a otros objetos o
     arrays de elementos de alguno de los tipos citados:
I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         19             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
             Clases

       Al contrario que C++, Java realiza la definición e implementación de la clase en el
      mismo lugar, en un único fichero .java
         class Cuenta {
               long numero;
               String titular;
               float saldo;
               float interesAnual;

                void ingreso(float cantidad) {
                       saldo += cantidad;
                }
                void reintegro(float cantidad) {
                       saldo = cantidad;
                }
                void ingresoInteresMes() {
                       saldo += interesAnual * saldo / 1200;
                }
                boolean enRojos() { return saldo < 0; }
                float leerSaldo() { return saldo; }
         }

I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2        20              Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Clases

        El acceso a los atributos de la clase desde la implementación de las operaciones se
      realiza de forma directa.

        Los atributos u operaciones estáticas (static) no son afectados por el proceso de
      instanciación de objetos a partir de la clase.

       De un atributo estático no se genera una copia por cada objeto que se crea. Existe
      una única copia compartida y accesible desde todos los objetos de la clase.

        Una operación estática únicamente puede acceder a miembros estáticos




I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         21             Diciembre, 2010
INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA”
                                                         PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2
          Clases

        El atributo nOp mantiene una cuenta global del número de operaciones realizadas
      en las cuentas del banco, para la realización de estadísticas.
        La operación leerNOperaciones() permite leer este contador.
        La operación eurosAPesetas() es una operación auxiliar de la clase Cuenta para ser
      usada cuando sea necesaria una conversión de moneda
         class Cuenta {
               long numero;
               String titular;
               float saldo;
               float interesAnual;
               // Contador de operaciones
               static int nOp = 0;
               static int leerNOperaciones() { return nOp; }
               // Operación estática auxiliar de conversión
               static long eurosAPesetas(float euros) { return euros * 166.386f; }
               void ingreso(float cantidad) { saldo += cantidad; ++nOp; }
               void reintegro(float cantidad) { saldo = cantidad; ++nOp; }
         }


I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2         22             Diciembre, 2010

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (8)

Clases y variables
Clases y variablesClases y variables
Clases y variables
 
Clases y funciones en java
Clases y funciones en javaClases y funciones en java
Clases y funciones en java
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
C3 las clases en java v2
C3 las clases en java v2C3 las clases en java v2
C3 las clases en java v2
 
Clases en java
Clases en javaClases en java
Clases en java
 
Encapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANSEncapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANS
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 

Ähnlich wie Introducción a Java 2

Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones javaArnel Gomez
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a javawaldinelly
 
Clase2
Clase2Clase2
Clase2rilara
 
Algoritmos y estructuras de datos, presentacion inicial
Algoritmos y estructuras de datos, presentacion inicialAlgoritmos y estructuras de datos, presentacion inicial
Algoritmos y estructuras de datos, presentacion inicialjuanchota1
 
Mi Lenguaje de Programación Preferido
Mi Lenguaje de Programación PreferidoMi Lenguaje de Programación Preferido
Mi Lenguaje de Programación Preferidostylee4799
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVANoralma Yanez
 
Mi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de PreferenciaMi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de PreferenciaNelson Rivera
 
Mi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferenciaMi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferenciaNelson Rivera
 
Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharudalrico
 
Arquitectura e-sijad
Arquitectura e-sijadArquitectura e-sijad
Arquitectura e-sijade-gim
 

Ähnlich wie Introducción a Java 2 (20)

Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
JAVA
JAVAJAVA
JAVA
 
Clase2
Clase2Clase2
Clase2
 
Algoritmos y estructuras de datos, presentacion inicial
Algoritmos y estructuras de datos, presentacion inicialAlgoritmos y estructuras de datos, presentacion inicial
Algoritmos y estructuras de datos, presentacion inicial
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Mi Lenguaje de Programación Preferido
Mi Lenguaje de Programación PreferidoMi Lenguaje de Programación Preferido
Mi Lenguaje de Programación Preferido
 
Programación de Software - Java
Programación de Software - JavaProgramación de Software - Java
Programación de Software - Java
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
Mi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de PreferenciaMi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de Preferencia
 
Mi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferenciaMi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferencia
 
JAVA.pptx
JAVA.pptxJAVA.pptx
JAVA.pptx
 
Javajulian
JavajulianJavajulian
Javajulian
 
Clase No.2 La Arquictura de JAVA
Clase No.2 La Arquictura de JAVAClase No.2 La Arquictura de JAVA
Clase No.2 La Arquictura de JAVA
 
Clase No.2 Preparando el Ambiente de Java
Clase No.2 Preparando el Ambiente de Java Clase No.2 Preparando el Ambiente de Java
Clase No.2 Preparando el Ambiente de Java
 
Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores sheshar
 
Laboratorio de programación ii. java
Laboratorio de programación ii. javaLaboratorio de programación ii. java
Laboratorio de programación ii. java
 
Arquitectura e-sijad
Arquitectura e-sijadArquitectura e-sijad
Arquitectura e-sijad
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 

Introducción a Java 2

  • 1. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 1 Diciembre, 2010
  • 2. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Tema 1: Introducción a la OOP y el lenguaje Java 1. Programación orientada a objetos 2. El lenguaje Java 3. Compilación, bytecode y JVMs 4. Entornos de desarrollo Java 5. Java vs otros lenguajes OO I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 2 Diciembre, 2010
  • 3. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Programación orientada a objetos •Aparece a finales de los 60, pero es a principios de los 80 cuando con el lenguaje Smalltalk comienza un interés claro hacia este paradigma. •La programación orientada a objetos es el paradigma de programación y análisis y diseño de aplicaciones claramente dominante en la actualidad. •Hoy prácticamente no se concibe un lenguaje de programación sin características de orientación a objetos: Eiffel, C++, Java, C#, etc. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 3 Diciembre, 2010
  • 4. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Programación orientada a objetos Las ventajas del paradigma OO son múltiples: •Es intuitiva, describe un problema en términos similares a los que utiliza la mente humana. •Permite construir soluciones más seguras y con un mantenimiento más sencillo. •Fomenta la reutilización y el trabajo en equipo. Escalabilidad de las aplicaciones. Las características principales del paradigma OO: •Incorpora los conceptos de abstracción, ocultación de información y encapsulación heredados de los tipos de datos abstractos. •Incorpora mecanismos específicos y extremadamente poderosos como son la •herencia, el polimorfismo y la ligadura dinámica •Admite de manera muy natural en algunos lenguajes el soporte de genericidad (patrones) y la definición de operadores. No soportados por Java. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 4 Diciembre, 2010
  • 5. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Programación orientada a objetos El desarrollo siguiendo el enfoque orientado a objetos es un proceso integral que incluye métodos específicos de análisis y diseño, notación gráfica (UML) y lenguajes de programación orientados a objetos. Las soluciones obtenidas durante la fase de análisis y diseño no son específicas para ningún lenguaje de programación orientado a objetos I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 5 Diciembre, 2010
  • 6. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 El Lenguaje Java Desarrollado en los laboratorios de Sun, es uno de los lenguajes de programación orientado a objetos que mayor repercusión ha tenido en los últimos años. •Basado en C++ pero simplificado, mucho más fácil de usar, de más alto nivel y menos propenso a errores. •Amplísima biblioteca estándar de clases predefinidas. •Las aplicaciones Java pueden ser ejecutadas indistintamente en cualquier plataforma sin necesidad de recompilación. •Amplio espectro: programación tradicional, distribuida, GUI, Web, dispositivos móviles, etc. •Gestión avanzada de memoria mediante el uso de un recolector de basura. •Gestión avanzada de errores, tanto en tiempo de compilación como de ejecución. •Soporte sencillo de múltiples hebras de ejecución. •Pueden integrarse módulos escritos en C/C++. •Lenguaje abierto. Kits de desarrollo y documentación gratuitos en la red I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 6 Diciembre, 2010
  • 7. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 El Lenguaje Java Existen distintas “ediciones” de Java para el desarrollo de aplicaciones en distintos ámbitos: •Aplicaciones de propósito general (J2SE) •Aplicaciones de gestión en entornos empresariales (J2EE) •Aplicaciones para teléfonos móviles, PDAs y otros dispositivos electrónicos que permitan aplicaciones empotradas (J2ME) I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 7 Diciembre, 2010
  • 8. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 El Lenguaje Java Existen dos kits diferentes que pueden ser descargados de la página oficial de Sun: •El Java Development Kit (JDK) permite desarrollar y ejecutar aplicaciones Java •El Java Runtime Environment (JRE) permite únicamente la ejecución J2SE incluye bibliotecas muy extensas y completas, que permiten la implementación de casi cualquier tipo de aplicación: •Seguridad •Interfaz de usuario (AWT, SWING) •EEDDs •Gráficos 2D •Componentes (JavaBeans) •Manipulación, carga y descarga de •Internacionalización imágenes •E/S •Impresión •XML •Acceso a bases de datos (JDBC) •Redes y acceso a Internet •Gestión de preferencias y •Programación distribuida (RMI, CORBA) configuraciones •Matemática de precisión arbitraria •Sonido I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 8 Diciembre, 2010
  • 9. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Compilación, bytecode y JVMs Java sigue un esquema no tradicional de compilación/ejecución: •La compilación genera un ejecutable en bytecode o código intermedio independiente. •Para su ejecución se requiere un JRE específico de la plataforma. El JRE está formado por una máquina virtual java (JVM) y las librerías de clases. •La JVM interpreta el bytecode o realiza su compilación just-in-time para que su •ejecución sea más eficiente Java Ventas.java (windows) class Ventas{ … Ventas.class } Java (linux) Compilación Usuario.class class Usuario{ Java Archivos de clases en … Bytecode o código (Sun OS) } Código Fuente intermedio Ejecución Interpretada con MV especifica I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 9 Diciembre, 2010
  • 10. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Compilación, bytecode y JVMs Ventajas de este sistema: •Se compila la aplicación una única vez y los ejecutables en bytecode obtenidos son válidos para cualquier plataforma. El código fuente queda a salvo. •Es muy robusto. La máquina virtual Java es capaz de detectar y notificar gran cantidad de errores durante la ejecución de la aplicación (como accesos a elementos fuera de un vector) •El recolector de basura no ocupa espacio en el ejecutable, ya que viene integrado en la JVM •Los ejecutables son pequeños porque las librerías de clases vienen proporcionadas junto a la JVM en el JRE de la plataforma concreta I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 10 Diciembre, 2010
  • 11. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Compilación, bytecode y JVMs Inconvenientes: •Velocidad. Evidentemente la interpretación o incluso compilación just-in-time del bytecode produce aplicaciones más lentas que en el caso de la ejecución directa de un binario. El recolector de basura puede suponer una sobrecarga adicional al procesador. •La generalidad tiene como inconveniente que no se aprovecha totalmente la potencia de la máquina y del sistema operativo. Por ejemplo, el aspecto de una aplicación Java puede resultar simple y poco atractivo en comparación con las aplicaciones nativas I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 11 Diciembre, 2010
  • 12. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Entornos de Desarrollo Java •JDK. El kit de desarrollo básico proporcionado por Sun. Es lo mínimo que se necesita para desarrollar. Útil si se necesita compilar aplicaciones Java de manera esporádica o en general para programadores con espíritu “espartano”. Puede bajarse gratuitamente para cualquier plataforma de java.sun.com •NetBeans. El IDE Java más popular, realizado íntegramente en Java (y por tanto multiplataforma). Consume bastantes recursos. Tiene una arquitectura extensible con módulos específicos para desarrollo web, aplicaciones móviles, diseño UML, etc. Puede obtenerse gratuitamente de www.netbeans.org •Eclipse. Junto a netBeans, el entorno de desarrollo Java gratuito más utilizado. También permite el desarrollo en C++ y otros lenguajes de programación. Puede descargarse en www.eclipse.org •Borland JBuilder. Excelente entorno integrado de desarrollo Java de Borland. Existen versiones limitadas que pueden bajarse de www.borland.com •Microsoft Visual J++. Uno de los más populares, aunque las aplicaciones obtenidas pueden presentar problemas de compatibilidad con el SDK oficial de Java. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 12 Diciembre, 2010
  • 13. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 El primer programa Hola.java Es de consenso que el entorno JDK no es el más adecuado para el desarrollo de aplicaciones Java, debido a funcionar única y exclusivamente mediante comandos de consola, ya que hoy en día la programación se suele ayudar de entornos visuales, como JBuilder, JCreator o muchos otros, que facilitan enormemente la tarea. Sin embargo, puede ser un entorno bastante útil para aprender el lenguaje, ya que aunque los entornos visuales nos hagan mucho trabajo siempre es necesario ir al código para modificarlo y obtener el comportamiento deseado, lo cual quiere decir que necesitamos dominar el lenguaje y es más fácil llegar a este dominio escribiendo códigos completos en un entorno “hostil” que no nos ayuda, que simplemente remodelando códigos ya generados por entornos visuales. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 13 Diciembre, 2010
  • 14. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 El primer programa Hola.java /** * @fileName Hola.java * @author Oscar Roa */ class Hola{ public static void main(String args[]){ System.out.println(“Hola Mundo desde Java!”); } } Para compilar el ejemplo: Javac. Es el comando compilador de Java. Su sintaxis es: #javac Hola.java La entrada de este comando ha de ser necesariamente un fichero que contenga código escrito en lenguaje Java y con extensión .java. El comando nos creará un fichero .class por cada clase que contenga el fichero Java. Los ficheros .class contienen código bytecode, el código que es interpretado por la máquina virtual Java. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 14 Diciembre, 2010
  • 15. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 El primer programa Hola.java Para ejecutar el ejemplo: Java. Es el intérprete de Java. Permite ejecutar aplicaciones que previamente hayan sido compiladas y transformadas en ficheros .class. Su sintaxis es: #java Hola No es necesario aquí suministrar la extensión del fichero, ya que siempre ha de ser un fichero .class Algunos Ejercicios de practica. •Calcular la suma de 2 números. •Calcular el Área de un circulo. •Calcular la suma de n números. •Calcular la suma de n números impares. •Calcular el factorial de un numero dado. •Obtener el código Ascii. •Calcular la seria Fibonnaci. I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 15 Diciembre, 2010
  • 16. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Tema 2: Programación Orientada a Objetos en Java 1. Introducción 15. Herencia múltiple 2. Clases de objetos 16. Polimorfismo 3. Protección de miembros 17. Ligadura dinámica 4. Protección de clases 18. Información de clases en tiempo de 5. Inicialización y finalización ejecución 6. Creación de objetos 19. Otros temas de interés en Java 7. Trabajando con objetos 8. Relaciones entre objetos 9. Clases anidadas e interiores 10. Autoreferencias 11. Aplicaciones orientadas a objetos 12. Herencia 13. Adición, redefinición y anulación 14. Protección y herencia I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 16 Diciembre, 2010
  • 17. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Clases Las clases de objetos representan conceptos o entidades significativos en un problema determinado. Una clase describe las características comunes de un conjunto de objetos, mediante dos elementos: Atributos (o variables miembro, variables de clase). Describen el estado interno de cada objeto Operaciones (o métodos, funciones miembro). Describen lo que se puede hacer con el objeto, los servicios que proporciona Nombre de la Clase Cuenta número: String Atributos titular: String saldo: Float interesAnual: Float ingreso(cantidad: Floatl) Operaciones reintegro(cantidad: Floatl) ingresoInteresMes() I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 17 Diciembre, 2010
  • 18. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Clases ●Durante la ejecución de la aplicación se producirá la instanciación de la clase, es decir, la creación de los objetos que representan cada uno de los individuos con sus características propias, es decir, valores específicos para sus atributos. a : Cuenta Cuenta número = “00982” titular = “Luis Cruz” número: String Saldo = 2500.00 interesAnual = 0.23 titular: String saldo: Float interesAnual: Float ingreso(cantidad: Floatl) número = “00922” Objetos titular = “Maria ” reintegro(cantidad: Floatl) Saldo = 1500.00 ingresoInteresMes() interesAnual = 1.23 Clase número = “0282” titular = “Oscar” Saldo = 12500.00 c : Cuenta interesAnual = 0.02 b: Cuenta I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 18 Diciembre, 2010
  • 19. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Clases La implementación de esta clase en Java se realizaría en un fichero con nombre Cuenta.java, y su contenido sería el siguiente: class Cuenta { long numero; String titular; float saldo; float interesAnual; void ingreso(float cantidad) { } void reintegro(float cantidad) { } void ingresoInteresMes() { } boolean enRojos() { } float leerSaldo() { } } Los atributos pueden ser de cualquiera de los tipos básicos de Java: boolean, char, byte, short, int, long, float y double, referencias a otros objetos o arrays de elementos de alguno de los tipos citados: I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 19 Diciembre, 2010
  • 20. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Clases Al contrario que C++, Java realiza la definición e implementación de la clase en el mismo lugar, en un único fichero .java class Cuenta { long numero; String titular; float saldo; float interesAnual; void ingreso(float cantidad) { saldo += cantidad; } void reintegro(float cantidad) { saldo = cantidad; } void ingresoInteresMes() { saldo += interesAnual * saldo / 1200; } boolean enRojos() { return saldo < 0; } float leerSaldo() { return saldo; } } I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 20 Diciembre, 2010
  • 21. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Clases El acceso a los atributos de la clase desde la implementación de las operaciones se realiza de forma directa. Los atributos u operaciones estáticas (static) no son afectados por el proceso de instanciación de objetos a partir de la clase. De un atributo estático no se genera una copia por cada objeto que se crea. Existe una única copia compartida y accesible desde todos los objetos de la clase. Una operación estática únicamente puede acceder a miembros estáticos I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 21 Diciembre, 2010
  • 22. INSTITUTO DE COMPUTACIÓN Y ELECTRÓNICA “DEHESA” PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 2 Clases El atributo nOp mantiene una cuenta global del número de operaciones realizadas en las cuentas del banco, para la realización de estadísticas. La operación leerNOperaciones() permite leer este contador. La operación eurosAPesetas() es una operación auxiliar de la clase Cuenta para ser usada cuando sea necesaria una conversión de moneda class Cuenta { long numero; String titular; float saldo; float interesAnual; // Contador de operaciones static int nOp = 0; static int leerNOperaciones() { return nOp; } // Operación estática auxiliar de conversión static long eurosAPesetas(float euros) { return euros * 166.386f; } void ingreso(float cantidad) { saldo += cantidad; ++nOp; } void reintegro(float cantidad) { saldo = cantidad; ++nOp; } } I.S.C. Oscar Eduardo Roa Vela | Programación Básica con Java 2 22 Diciembre, 2010