New 2 Java: Construir una Aplicación: 1.- Objetos de una Aplicación

�Cu�l es el prop�sito de la palabra clave package?

El prop�sito de usar la palabra clave package es agrupar y almacenar las clases relacionadas en un contenedor, y hacer que las clases del paquete est�n disponibles para el compilador.

.�Paquetes

El lenguaje Java tiene muchas clases predefinidas que pueden ser usadas en las aplicaciones. Hay tantas que las clases han tenido que ser organizadas en grupos llamados paquetes.

Por ejemplo, las clases que soportan I/O (input y output) est�n contenidas en el paquete java.io, y las clases para crear applets est�n en el paquete java.applet. Poner las clases en paquetes las organiza convenientemente para el compilador y para t�.

Cuando creamos aplicaciones, ponemos nuestras clases en nuestro paquete de aplicaci�n particular. La aplicaci�n Dive Log almacena sus ficheros en un paquete llamado divelog. Esto le dice a cualquiera que mire el c�digo que las clases de la aplicaci�n Dive Log est�n en un directorio llamado divelog, igual que las clases java.applet est�n en un directorio llamando applet, que es un directorio bajo java. En otras palabras, los nombres de paquetes corresponden con los nombres de directorios.

El paquete java.applet teine la estructura de directorio:

/java/
   |
    /applet

Nuestro paquete divelog tiene la estructura de directorios:

C:\divelog

o

%/usr/home/divelog
Nombrar tus Ficheros de Clases
Cuando crees los ficheros de clases, gr�balas en el directorio divelog:
  1. Copia o teclea el c�digo seg�n se explica en el tutorial en un fichero.
  2. Graba el fichero con el mismo nombre de la clase que est�s creando.
  3. Nombra cada fichero con la extensi�n .java. Un fichero con la clase DiveLog deber�a llamarse DiveLog.java.

Cuando usemos las clases predefinidas de los APIs de Java, el compilador necesita localizar dichas clases. Le palabra clave package es s�lo para mapear las clases de nuestra aplicaci�n particular, no las clases del API Java que podr�amos usar. Al compilador se le puede decir de dos formas qu� clases necesita y donde est�n:

  • Escribiendo el nombre completo del paquete y de la clase (nombre totalmente cualificado):
    java.applet.Applet
  • Usando una sentencia import al principio de nuestra clase:
    import java.applet.*;

La segunda forma, usar las sentencias import, le dice al compilador que nuestra clase incluye clases del paquete java.applet. De esta forma, despu�s de la sentencia import, s�lo tenemos que nombrar la clase en vez de tener que escribir el nombre totalmene cualificado como en el primer ejemplo.

.�Prepararnos para el Interface Gr�fico de Usuario (GUI)

Dive Log es una aplicaci�n con un Interface Gr�fico de Usuario (GUI). De hecho, la mayor�a de la aplicaci�n es el propio interface. Con la creaci�n de las caracter�sticas gr�ficas como los men�s, las pesta�as, las im�genes, etc., nos familiarizaremos con el Proyecto Swing, los APIs Java que proporcionan muchas clases predefinidas para aplicaciones GUI. Adem�s, aprenderemos sobre el AWT, otro gran conjunto de APIs Java que proporciona clases para dise�ar la distribuci�n de objetos gr�ficos, y la funcionalidad llamada manejo de eventos.

Importar Paquetes

Para hacer sencillo el uso de las clases Swing y AWT, incluimos las sentencias import en nuestra clase:

Sigue estos pasos...
  1. Copia y pega, o teclea las siguientes l�neas de c�digo en tu fichero DiveLog.java:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
  2. Graba el fichero

Estas sentencias import nos permiten f�cilmente acceder a las clases predefinidas en estos paquetes. En este caso, se han importado los paquetes con clases para componentes gr�ficos, por eso ahora no necesitamos teclear sus nombres totalmente cualificados, en su lugar podemos teclear directamente el nombre de la clase que necesitamos usar. En otras palabras, las sentencias import nos ofrecen un atajo a los nombres de las clases de otros paquetes. Veremos m�s ejemplos a lo largo de este tutorial.

.�Definici�n de Clases

Despu�s de los nombres de paquetes y las sentencias import, est�mos listos para definir la clase. La primera clase a definir es el marco de trabajo para la propia aplicaci�n, la clase DiveLog:

public class DiveLog
{

Esta l�nea le dice al compilador:

  • La clase es public, lo que significa que es accesible desde cualquier otra clase en cualquier otro paquete.
  • Que esto es una clase, de ah� la palabra clave class.
  • Que el nombre de la clase es DiveLog.
Comentar el c�digo
Comentar el c�digo es importante para proporcionar ayuda para otros, y tambi�n para nosotros mismos. Los comentarios se pueden insertar en el c�digo fuente dos formas, quelel dicen al compilador que ignore el texto:
// This is a single line comment.
/* This format is often used for 
multiline comments. */

Observa que el nombre de la clase empieza con una letra may�scula. Las convenciones de nombrado dicen que la primera letra del nombre de una clase sea en may�sculas y la primera letra de los nombres de m�todos en min�scula. Usando este esquema de nombrado es f�cil leer el c�digo porque los nombres de las clases son diferentes de los nombres de m�todos y de variables.

El corchete { empieza la definici�n de la clase. Al final de la clase debe hacer un corchete de cierre }. Los corchetes significan el inicio y el final de la clases, los cuerpos de los m�todos y las sentencias.

Perder o a�adir corchetes de m�s es una de las causas m�s comunes de errores de compilaci�n. Es una buena idea crear los corchetes en parejas, y luego insertar el c�digo que va entre ellos, as�, en este m�todo:

Primero:

public void actionPerformed(ActionEvent e)
 {

 }

Segundo:

public void actionPerformed(ActionEvent e)
 {
     System.exit(0);
 }
Sigue estos pasos...
  1. Abre el fichero DiveLog.java en tu editor de texto.
  2. Teclea o copia y pega la cabecera de la clase y los corchetes en tu fichero unas cuantas l�neas debajo de las sentencias import:
    public class DiveLog
    {
    
    
    }
    
  3. Graba el fichero.

Declarar Variables

Los objetos contienen datos, y las variables son contenedores de datos, o mejor, referencias de datos. La idea que hay detr�s del uso de una variable, una referencia al dato, en vez del propio dato es que as� podemos manipular el dato.

Por ejemplo, en el ejemplo de abajo birthYear y currentYear son dos valores datos, mientras que age representa birthYear restado de currentYear:

birthYear = 1981;
currentYear = 2001;
age = currentYear - birthYear;

En este ejemplo, la variable age teine un valor de 20. Si cambiamos el valor de birthYear o de currentYear el valor de age tambi�n cambiar� de forma conveniente.

Las variables no tienen que ser codificadas a lo bruto. La variable birthYear puede estar asignada a un campo de texto para que el usuario introduzca un n�mero. Luego la variable currentYear podr�a est� codificada directamente, declarando el a�o actual, como 2001. Este tipo de variables hacen las aplicaciones din�micas. Mientras que un usuario teclea 1962 como valor de birthYear, otro usuario puede teclear 1982 como valor de birthYear, y se calcular� un valor diferente para age con cada entrada de usuario.

Usando las variables de esta forma para representar datos, un programador no tiene porque conocer los valores por adelantado. Las aplicaciones bancarias tiene variables que representan nombres de clientes, direcciones, n�meros de cuentas, saldos de las cuentas, etc., junto con variables codificadas directamente como los tipos de inter�s y las tasas bancarias.

En el lenguaje de programaci�n Java, los tipos de variables deben declararse con su nombre. En otras palabras, el compilador tiene que conocer si la variable va a representar un String, un int, o alg�n otro tipo de dato. Por ejemplo para compilar el c�digo de arriba deber�amos reescribirlo como:

int birthYear = 1981;
int currentYear = 2001;
int age = currentYear - birthYear;

Mira atentamente el c�digo de arriba, luego, si puedes, responde a la pregunta de abajo:

�Qu� declaraci�n de variable est� escrita incorrectamente?

   A. String lang = "Java Programming";

   B. double amount = 80.11

   C. int size = 8;

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP