Last revised: April 02, 2006
Notas de Clase Para Curso de Programacion: Aplicaciones en Java
Andrés Montano Pellegrini

previous_motif_gr.gif (220 bytes)
Next:Usando Objetos Up: Contenido

A.Introduccion a Java

  1. Porque Java?

    Supongamos que nosotros deseamos distribuir un programa escrito en un lenguaje tradicional como Visual Basic. Despues de escribir el programa fuente (.frm, .bas por ej) necesitamos compilarlos en archivos de codigo objeto (.obj) y despues enlazar dichos archivos para producir un ejecutable (.exe). Este ejecutable, ademas de tener todos el codigo objeto unido, tiene un encabezado para darle al sistema operativo informacion sobre como debe se ejecutado el archivo (por ej. cuanta memoria necesita).

    Este ejecutable seria el que distrubuiriamos. El problema es que tenemos muchas limitaciones. Este programa solo podria ejecutarse en computadoras con el sistema operativo para el cual fue desarrollado. Otros sistemas operativos (aunque estuvieran corriendo sobre la misma arquitectura del computador) no sabrian el formato del encabezado ademas que no pudieran ejecutar las llamadas al sistema y ni siquiera tendrian las librerias necesarias (como los .dll). Aunque tuvieran las librerias de todos modos ni siquiera sabrian como correrlas!

    Como podria hacer que mi programa corra en diferentes plataformas (diferentes sistemas operativos corriendo sobre diferente hardware)? Una solucion programar la aplicacion en un lenguaje que sea soportable por varios sistemas operativos. Un problema que surge aqui es que necesitaria distribuir el codigo fuente (que no siempre es deseable). Otro problema que surge es que en cada sistema operativo las llamadas al sistema serian diferentes. Por lo que se tendrian que hacer adaptaciones al programa cada vez que se quisiera que fuera soportado por una nueva plataforma.

    La solucion que propone Java es que el programa no corra sobre el hardware real, sino que corra sobre una maquina virtual. Es decir, dicha maquina no existe sino que es simulada por medio de software. Cada plataforma tendria instalada esta maquina virtual (que es un programa) y a la hora de correr los programas esta maquina virtual los correria. La maquina virtual actuaria como una forma de interprete, el cual va leyendo el programa y ejecutandolo instruccion por instruccion sobre el hardware real.

    A la maquina virtual de Java se le llama Java Virtual Machine (JVM). Los programas fuente de Java ( .java) al compilarse producirian un codigo objeto ( .class) constituido de las instrucciones de la maquina virtual (java byte codes). La maquina virtual ya incluye un set de librerias para las llamadas al sistema.

  2. Ventajas:
    1. Programas portables a cualquier plataforma (que cuente como una JVM).
    2. Diseno simple por no tener que ser backward compatible con nadie (que no era el caso de C++, ya que este tenia que ser backward compatible con C).
    3. Completamente orientado a objetos y con soporte de multithreading.
    4. Ideal para Internet por producir programas pequenos

     

  3. Desventajas:
    1. Corre significativamente mas despacio que si corriera en hardware real.
    2. Hay que aprender un lenguaje nuevo.

     

  4. Primer Programa en Java: Hello world!

    Pueden bajar Java de http://www.javasoft.com/ o de http://www.microsoft.com/visualj/

    Java puede generar dos tipos de programas: aplicaciones y applets. Las aplicaciones corre desde la linea de comandos; el applet es mas orientado a Internet y corre desde un browser.

     

    1. Aplicacion
      import java.io.*;
      class HelloApp {
        public static void main (String args[])
        {
          System.out.println ("Hello world !");
        }
      }

      Notas:

      1. System es un objeto que se refiere al sistema en donde esta corriendo el programa.
      2. out es el objeto de salida, es equivalente al flujo de salida cout de C++.
      3. El nombre del archivo necesita tener el mismo nombre que la clase con extension .java (HelloApp.java)

       

    2. Applet
      import java.applet.Applet;
      import java.awt.*;
      
      class HelloApp extends Applet
      {
        public void paint (Graphics g)
        {
          g.drawString ("Hello world !", 0, 20);
        }
      }

      Nota:

      El objeto Graphics (comunmente llamado g) se utiliza para manejar la ventana del applet. La clase Graphics define los comandos para manipulacion de de imagenes (como drawString). El objeto Graphics tambien sabe informacion sobre la ventana tal como su tamano, tipo de letra, posicion, etc.

      Para ejecutar el programa se tiene que hacer referencia a el desde una pagina para ser ejecutado por el browser.

      <HTML>
      <HEAD>
      <TITLE>Hello world</TITLE>
      </HEAD>
      <BODY>
      <APPLET CODE="HelloApp.class" WIDTH=250 HEIGHT=100>
      </APPLET>
      </BODY>
      </HTML>

      Observelo corriendo!

      Nota:

      El comando Applet dentro del HTML le dice al browser a crear, posisionar y dimensionar la ventana de applet. Tambien asocia al applet con la ventana. Sin embargo el browser no tiene ni idea de que poner en la ventana. Lo que hace el browser es llamar al metodo paint(Graphics) cada vez que desee que se despliegue el contenido de la ventana (la primera vez y cada vez que quiere redesplegar el contenido).

previous_motif_gr.gif (220 bytes)
Next:Usando Objetos Up: Contenido


Last revised: April 02, 2006
Copyright © 2001-2006 by Andrés Montano Pellegrini
All rights reserved
Hosted by www.Geocities.ws

1