jueves, 17 de julio de 2008

Capítulo 1. Aspectos básicos de Java (III)

1.6. Compilación y ejecución de programas Java


Una vez escrito el código fuente del programa, es necesario realizar dos operaciones para poder ver los resultados:


- Compilación. Operación consistente en transformar el código fuente en un código intermedio, conocido como bytecode, que no está ligado a ningún sistema operativo concreto, sino a un entorno de ejecución conocido como Máquina Virtual Java. Esto, como ya hemos comentado antes, permite la portabilidad del código entre distintas plataformas. Los bytecodes son almacenados en archivos .class, tal y como se ilustra en la figura 1.


- Como explicaremos más adelante, la compilación de un programa Java se realiza clase a clase a través de la utilidad javac.exe proporcionada por el software de desarrollo para Java de Sun (SDK), utilidad ésta que debe invocada a través de la consola de comandos.


- Ejecución. La ejecución, que no tiene porqué llevarse a cabo en la misma máquina donde se ha realizado la compilación, consiste en traducir los bytecodes a código máquina nativo y realizar la ejecución del mismo. Esta operación es realizada por un intérprete incorporado en la JVM y que es invocado a través del comando java.exe proporcionado por el SDK.


Durante la fase de desarrollo de los programas, los programadores realizan constantemente las tareas de compilación y posterior ejecución del código para probar su funcionamiento. Es por ello que, en vez de utilizar directamente las utilidades javac y java desde la línea de comandos, se haga uso de algún entorno de desarrollo integrado (IDE) que facilite la realización de estas tareas, abstrayendo al programador de los detalles asociados al empleo directo de estas utilidades.



Existen una amplia variedad de IDEs para Java a disposición de los programadores; unos de libre distribución y otros con licencia. Uno de los más populares, y que será el que utilicemos nosotros en el curso es NetBeans. NetBeans es un potente entorno de desarrollo de libre distribución que podemos encontrar en la página www.netbeans.org. Con este entorno podremos desarrollar cualquier aplicación Java, tanto estándar como enterprise, de una manera sencilla.




Este capítulo forma parte del Máster de Java-J2EE-XML-AJAX del Grupo SYNCROM.
Más información en
www.syncrom.com o en el Microsite del Máster OnLine de Java-J2EE

Capitulo 1. Aspectos básicos de Java (II)

1.4. El método main.

Todo programa Java, independientemente del número de clases que lo formen, debe contener en alguna de sus clases un método, conocido como método main o principal, que constituirá el punto de inicio de la aplicación. Este método, será invocado por la Máquina Virtual de Java cuando le demos la orden de ejecutar el programa; dicho método tendrá que tener un formato específico, formato definido por la especificación de Sun.

El formato del método main será el siguiente:

public static void main (String [] args)
{
  //contenido del método
}


Poco a poco iremos explicando el significado de cada una de las palabras clave que aparecen en la definición del método. De momento quedémonos con el nombre de éste (main) y con el tipo de devolución (void) que significa que el método no devolverá ningún resultado al punto de llamada, algo lógico en este caso pues quien hace la llamada al método es la JVM y ésta no debe esperar ningún resultado tras su ejecución.


1.5. Programa básico en Java

Llegados a este punto, vamos crear nuestro primer programa en Java, consistente en una sencilla aplicación que muestre en la consola de comandos (antiguamente conocida como ventana MS-DOS) un mensaje de bienvenida.

Para esta aplicación solo necesitaremos crear una única clase con un único método, el método main(), en el que codificaremos la instrucción encargada de mostrar el mensaje. He aquí el código de nuestra clase:

public class Ejemplo
{
  public static void main (String[] args)
  {
    System.out.println("Mi primer programa Java");
  }
}


Aunque tendremos oportunidad de analizar más adelante los elementos que componen la instrucción anterior, es importante comentar que el envío del mensaje a la consola es realizado a través de un método (println) de una de las clases incorporadas en el Java estándar. Esto viene a demostrar una de las características de la programación en Java, y es que además de las instrucciones propias de cualquier lenguaje de programación, la realización de cualquier programa requiere el uso de diferentes clases incluidas en la plataforma para conseguir la funcionalidad requerida.




Este capítulo forma parte del Máster de Java-J2EE-XML-AJAX del Grupo SYNCROM.
Más información en
www.syncrom.com o en el Microsite del Máster OnLine de Java-J2EE


Capítulo 1: Aspectos básicos de Java

Aspectos básicos de Java

Cuando hablamos de Java no debemos pensar únicamente en un lenguaje de programación. La plataforma Java proporciona, además de un lenguaje de programación, todo un conjunto de especificaciones, tecnologías y librerías de clases, mediante los cuales se pueden crear diferentes tipos de programas informáticos capaces de ser ejecutados en una amplia variedad de sistemas operativos.



Esta independencia del sistema operativo ha contribuido a que numerosos fabricantes software hayan apostado por esta tecnología, desarrollando productos y herramientas que facilitan la labor de programador y ayudan a aumentar la potencia y rendimiento de las aplicaciones creadas con Java.


Así pues no es de extrañar la enorme penetración que Java tiene en el mundo del software, siendo la principal opción para numerosas Empresas y programadores independientes a la hora de acometer sus desarrollos.


1.1. La Máquina Vitual Java

“Escribe una vez y ejecuta en cualquier parte”, este es el lema que lanzaron los creadores de Java cuando lanzaron la primera versión de la plataforma y, básicamente, se refiere al hecho de poder crear y compilar un programa en Java en una determinada máquina y poderlo ejecutar después en diferentes sistemas operativos, sin necesidad de sucesivas recompiaciones del código.



Y todo esto es posible gracias a la existencia de un entorno de ejecución, conocido como Máquina Virtual Java o JVM, capaz de traducir en tiempo de ejecución el código compilado a código ejecutable nativo para un sistema operativo particular.


Esto supone la necesidad de que en el equipo donde se va a ejecutar el programa exista una versión de JVM para ese sistema operativo particular. Esto actualmente no supone ningún problema, ya que la mayoría de los sistemas operativos modernos disponen de JVM que además se incluye como una propia extensión del sistema.


 
1.2. Ediciones Java



Java, en lo que a lenguaje de programación se refiere, existe solamente uno, sin embargo, el rápido aumento del número de clases para trabajar con Java que iban apareciendo con cada nueva versión de la plataforma, obligó a Sun organizar ésta en tres niveles o ediciones y distribuir entre ellas las distintas librerías disponibles, enfocándose cada una de estas ediciones en un tipo de desarrollo concreto:


- Java Standar Edition (Java SE). Digamos que esta edición proporciona lo básico para trabajar en Java, incluyendo:


  • Herramientas para la compilación y ejecución de programas.
  • Runtime de Java. O lo que es lo mismo, la Máquina Virtual de Java y todas aquellas clases de uso general necesarias para la construcción y ejecución de cualquier tipo de programa Java.
  • Como añadido, Java SE también contiene clases para la construcción de interfaces gráficas de usuario y para acceso a bases de datos.
- Java Enterprise Edition (Java EE). Esta edición incluye todas las clases necesarias para la construcción de aplicaciones Internet/intranet con Java.


- Java Micro Edition (Java ME). Proporciona todo el soporte necesario para la creación de aplicaciones que puedan ser ejecutadas en dispositivos de pequeño tamaño, tales como teléfonos móviles o agendas electrónicas. En este sentido, Java ME incluye:


  • Una versión reducida de la Máquina Virtual Java para este tipo de dispositivos (KVM).
  • Librerías de clases específicas para este tipo de aplicaciones.
Estas ediciones pueden descargarse libremente desde el sitio Web de Java Sun: http://java.sun.com/.



1.3. Estructura de un programa Java


A la hora de escribir una aplicación en Java, debemos de tener en cuenta que todo programa escrito en este lenguaje se estructura en clases. Aún es pronto para intentar comprender el concepto de clase, de momento bastará indicar que una clase es un conjunto de métodos (funciones) que se encargan de realizar un tareas que tienen algún tipo de relación entre ellas.


Por ejemplo, una clase llamada GestionEmpleados podría estar compuesta de métodos que realizaran operaciones con los empleados de una empresa, como altas y bajas de empleados, búsquedas a partir de un identificador, etc.


Además de métodos, las clases pueden incluir datos (llamados campos o atributos) que sean compartidos por todos los métodos de la clase.


Para definir una clase en Java se utiliza la sintaxis:


class NombreClase
{
  //contenido de la clase
}



NombreClase sería el nombre que le queremos asignar a nuestra clase. Las reglas que debe cumplir un nombre de clase son muy básicas: no puede coincidir con ninguna palabra reservada del lenguaje y entre los caracteres que lo forman no se pueden incluir espacios ni signos de puntuación. Por otro lado, suele seguirse el convenio de que la primera letra de cada palabra que compone el nombre se escriba en mayúsculas, mientras que el resto lo harán en minúsculas.




Este capítulo forma parte del Máster de Java-J2EE-XML-AJAX del Grupo SYNCROM.
Más información en
www.syncrom.com o en el Microsite del Máster OnLine de Java-J2EE