Tema 1: La tecnología JAVA
1.1 Características de lenguaje
Java fue desarrollado en Sun Microsystems por James Goslingy (basado en C y C++) y
tuvo gran aceptación debido a la orientación a objetos que maneja, la independencia de
la plataforma (UNIX, MS-DOS, LINUX, WINDOWS) y las posibilidades de trabajo en red.
En el corazón de Java esta el lenguaje de programación y el conjunto de herramientas de
desarrollo en Java ( JDK, y Java Development Kit respectivamente). El JDK incluye
herramientas para la construcción de interfaces gráficas de usuario (GUI, Graphical User
Interface), trabajo en red e implantación de applets, que son programas de Java que
agregan contenido dinámico a las páginas Web.
La independencia de la plataforma se debe a que sus programas se compilan en códigos
de bytes (byte code) y pueden ejecutarse en cualquier computadora con un interprete o
una máquina virtual de Java (JVM, Java Virtual Machine). El código de bytes es
independiente de la arquitectura y del sistema operativo. Por lo tanto, sus programas
pueden escribirse y compilarse una vez y luego transmitirse para ejecutarse en cualquier
otro lugar.
Los componentes de Java son
• Lenguaje de programación: da soporte a Programación Orientada a Objetos
(POO) y viene con bibliotecas de clases para E/S, cadenas, multihilos y
manejo de excepciones.
• Compilador: compila el código de origen de Java en código de bytes de
Java.
• Máquina virtual (JVM): interpreta y ejecuta el código de bytes Java
• AWT (Abstract Windowing Toolkit): Que da soporte a programación de
interfaz gráfica del usuario orientada a eventos.
• Clase Applet: simplifica y facilita los applets.
• Visor de Applet : prueba y despliega applets de Java contenidos en
documentos HTML.
• JAR(Java ARchive): Archivado de Java, empaca y desempaca archivos
para una rápida y eficiente transferencia en una red.
• JDBC (Java Data Base Connectivity) : permite el acceso a objetos de Java
en computadoras remotas de una red.
• Depurador: Ayuda a localizar y corregir errores en programas de Java.
• Desensamblador: extrae información del código fuente del código de bytes
compilado.
• Generador de encabezado: Crea los archivos de encabezado (.h)
necesarios para extender codigo Java con programas codificados en C y
C++.
• JNI (Java Native Interface) : Proporciona interfaz con código de C y C++.
Java tiene las siguientes características
• Orientación a objetos: En Java todos los métodos se encuentran dentro de clases
y proporciona las ventajas de utilizar herencia y polimorfismo entre otros
conceptos de P O O.
• Simplicidad: La sintaxis de Java es similar a ANSI C y C++, aunque es mas
pequeño que C++. Elimina encabezados de archivos, preprocesador, aritmética de
apuntadores, herencia múltiple, sobrecarga de operadores, struct, union y
plantillas. Además, realiza automáticamente la recolección de basura, lo que hace
inecesario el manejo explícito de memoria.
• Compatibilidad: El intérprete de Java y el soporte básico de clases se mantiene
pequeño al empaquetar por separado otras bibliotecas.
• Portabilidad: Sus programas se compilan en el código de bytes de arquitectura
neutra y se ejecutará en cualquier plataforma con un intérprete de Java.
• Amigable para el trabajo de red: Java tiene elementos integrados para
comunicación en red, applets Web, aplicaciones cliente-servidor, además de
acceso remoto a base de datos, métodos y programas.
• Soporte a GUI: La caja de herramientas para la creación de ventanas abstractas
(AWT) de Java simplifica y facilita la escritura de programas GUI orientados a
eventos con muchos componentes de ventana.
• Carga y vinculación incremental dinámica: Las clases de Java se vinculan
dinámicamente al momento de la carga. Por lo tanto, la adición de nuevos
métodos y campos de datos a clases, no requieren de recompilación de las clases
del cliente.
• Internacionalización: Los programas de Java están escritos en Unicode, un código
de 16 bits que incluyen alfabetos de los lenguajes más utilizados en el mundo.
• Hilos: Java proporciona múltiples flujos de control que se ejecutan de manera
concurrente dentro de uno de sus programas, esto es, se emprenden varias tareas
al mismo tiempo, esta característica da soporte a programas orientados a eventos,
para trabajo de red y de animación.
• Seguridad: entre las medidas de seguridad de Java se incluyen restricciones en
sus applets, implantación redefinible de sockets y objetos de administrador de
seguridad definidos por el usuario. Hacen que los applets sean confiables y
permiten que las aplicaciones implanten y se apeguen a las reglas de seguridad
personalizadas.
1.2 Tipos de programas en Java
Los programas en Java constan de una o más clases, estas pueden organizarse en
paquetes. Las clases de Java definen objetos de software encerrando los miembros de
los datos (campos) y a los miembros de función (métodos).
Los tipos de programas en java son aplicaciones para extender las clases existentes a
través de herencia, programación de applets y swings para agregar ejecutables al
contenido de páginas Web.
1.3 Compilación y ejecución de programas
Para comenzar, es necesario tener un editor de texto para escribir el programa, así que
es necesario que se tenga uno a la mano, puede ser el block de notas de windows , el
edit de MS-DOS (durante todo el curso se compilarán los programas y se ejecutarán en
el modo MS-DOS, pero eso no implica que no se ejecute en otra plataforma; entonces,
en la línea de comandos de cualquier otra plataforma se escribe lo mismo que en ésta,
un ejemplo de lo que es la Máquina Virtual de Java) o cualquier otro editor de textos. El
programa fuente editado debe ser almacenado con el mismo nombre de la clase que
contiene a la función principal, denominada main.
Para compilar en Java se utiliza la instrucción javac que compila el programa y genera un
archivo *.class, este archivo contiene el ejecutable. El modo de emplearlo es, en la línea
de comandos se escribe
javac nomprog.java
en donde nomprog.java es el nombre del programa fuente con extensión .java que
hayamos dado a nuestra aplicación. De echo es requisito que todos los programas que
se desen compilar en java tengan la extensión *.java. Y para correrlo, es necesario
utilizar la instrucción java, esto es
java nomprog
Es importante mencionar que estos mismos pasos se llevan a cabo en cualquier
plataforma, ya sea UNIX, MS-DOS, etc..
1.4 Creación de aplicaciones con el JDK
Para ejemplificar lo anterior desarrollemos una primera aplicación con el JDK. Editemos
el siguiente código a
class mi_primera_vez
{
public static void main( String[ ] args)
{
System.out.println("Primera aplicación.");
System.out.println("Es mi primer programa en
java");
}
y guardémoslo con el nombre de mi_primera_vez.java. Compilémoslo con
javac mi_primera_vez.java
Entonces se crea el archivo mi_primera_vez.class que contiene el código de bytes
ejecutable.
Para ejecutarlo se escribe
java mi_primera_vez
La ejecución empieza invocando al método main ( ). Para declarar una clase como
pública , agregar el modificador public al principio del encabezado. De otra forma, la
clase sólo se utilizará dentro del paquete.
Todas las partes de un programa que tienen acceso a la clase pueden acceder a los
miembros de esta que se haya declarado como public. Un método main se hace público
para que el interprete Java lo pueda ejecutar.
El parámetro args de main recibe los argumentos dados en la línea de comandos que
invocó el programa.
Un miembro de una clase puede ser un miembro de instancia o un miembro de la clase.
Es decir, que un miembro siempre es un miembro de instancia a menos que se declare
static, que lo convierta en un miembro de la clase.
La instrucción System.out.println permite que la cadena confinada entre parentesis se
muestre en pantalla al ejecutar el program. las secuencias de escape que utiliza son:
Secuencia Significado
\b Retroceso
(backspace)
\f Avance del papel
\n Carácter de nueva
línea
\r Retorno del carro
\t Tabulador horizontal
\v Tabulador vertical
\\ Carácter de diagonal
invertida
\' Comilla sencilla
\" Comillas dobles
\o Base octal
\x Base hexadecimal
\X Base hexadecimal
\0 Terminador nulo
1.5 Creación de applets con JDK
Los applets de Java agrega contenido ejecutable a páginas Web. Una applet es un
progama de Java que puede recuperarse con el explorador Web y ejecutarse en la
computadora local del mismo. Java permite que se incluyan los populares exploradores
de Netscape y Microsoft.
Para ejemplificar la manera de crear applets con JDK editemos el siguiente código.
import java.applet.*;
import java.awt.*;
public class MiApplet1 extends Applet
{
public void paint(Graphics g)
{
g.drawString("Programación en Java", 50, 50);
g.drawString("Ejemplo de applet", 50, 70);
}
}
En las líneas
import java.applet.*;
import java.awt.*;
importamos dos librerías applet y awt. En la librería applet están todas las funciones
miembro que se utilizan para que un applet sea ejecutado (por ejemplo el menú de
control, la ventana del applet, etc.). En la libreria awt están definidas las funciones
miembro que nos ayudan a dibujar en el applet (por ejemplo, la clase Graphics). Para
generar el archivo class se hace igual como la vista en el punto anterior. Esto es
Guardamos el programa fuente en MiApplet1.java
Compilamos el programa fuente con javac MiApplet1.java
Pero para poder ejecutarlo se necesita aplicar el visualizador de Applets, y un archivo
que contenga el Applet para HTML. Para tal efecto editemos el siguiente ejemplo.
<HTML>
<APPLET CODE = "MiApplet1.class" HEIGHT = 400 WIDTH = 400>
</APPLET>
</HTML>
y guardémoslo en un archivo de nombre verapplet.html (el nombre del archivo puede ser
cualquiera que prefiera el programador con extensión *.html).
Para que corra el Applet en la variable de CODE es necesario poner el nombre del
*.class que se desea ejecutar. Entonces, para correr el applet se teclea y genera la salida
así
appletviewer verapplet.html