Bienvenidos sean a este post, en el dia de hoy veremos como se declaran los archivos fuentes en nuestro programa, tambien conocidos como librerias o paquetes, esto nos permitira tener acceso a otros metodos pero antes veamos algunas caracteristicas:

  • Solo puede haber una clase publica por archivo fuente
  • Un archivo fuente puede tener multiples clases no publicas
  • La clase publica debe ser igual al nombre del archivo, el archivo debe finalizar con la extension .java
  • Si la clase la definimos dentro de un paquete, su declaracion debe ser la primera en el archivo fuente
  • Si la declaracion de import existe, debe estar declarada entre la declaracion del paquete y la de la clase, en caso de no existir la declaracion de paquete el import debe ser la primera linea de la clase
  • Las declaraciones de import y paquetes dejan implicito que todas las clases van a estar dentro del archivo fuente

La clases tienen diferentes niveles de acceso, pueden ser de tipo abstract, final, etc. Java a su vez incluye dos tipos adicionales llamados Inner y Anonymous pero todo esto lo veremos mas adelante en futuros posts cuando tratemos estos temas.

Los paquetes java son una forma de categorizar las clases, metodos y las interfaces, esto nos facilitara a la hora de desarrollar porque cuando trabajemos tendremos muchas clases y metodos para lo cual sera una buena idea tenerlos organizados.

La opcion de import es una buena forma de permitirle al compilador de java poder ubicar archivos fuentes (paquetes) para poder ser utilizados por nuestro programa, una sintaxis clasica es de la siguiente forma:

import java.io.*;

En este caso le decimos que incorpore todos los paquetes disponibles del tipo java.io, esto por medio del comodin asterisco (*), si bien es una practica habitual no es la mejor pero pasemos a ver en un simple ejemplo como funciona el metodo import y como llamar a otras clases.

Comencemos con nuestro ejemplo, para este ejemplo vamos a crear dos archivos para tener dos clases distintas, una se va a llamar Empleado.java y otro EmpleadoTest.java, veamos el codigo de nuestro primer archivo:

Empleado.java:

import java.io.*; 

public class Empleado 
{ 
	String nombre; 
	int edad; 
	String puesto; 
	double salario; 
	
	public Empleado(String nombre) 
	{         
		this.nombre = nombre; 
	}

	public void setEdad(int empEdad) 
	{         
		edad = empEdad; 
	} 
	
	public void setPuesto(String empPuesto) 
	{         
		puesto = empPuesto; 
	} 

	public void setSalario(double empSalario) 
	{
		salario = empSalario; 
	} 
	
	public void mostrarEmpleado() 
	{         
		System.out.println("Nombre: " + nombre);         
		System.out.println("Edad: " + edad);         
		System.out.println("Puesto: " + puesto);         
		System.out.println("Salario: " + salario); 
	} 
} 

Aca como pueden ver creamos un constructor encargado de asignar el valor al atributo nombre de nuestro empleado y despues varios metodos para asignar la edad (setEdad), puesto (setPuesto) y salario (setSalario). Nuestro ultimo metodo es el encargado de mostrar todos los datos de nuestro empleado, como pueden ver es una clase que no tiene metodo main() y por lo tanto no va a ejecutar ninguna accion, por ultimo como dijimos antes la primera linea de nuestro codigo sera un import para traer todos los paquetes de java.io. Ahora veamos el codigo fuente de nuestro siguiente archivo:

EmpleadoTest.java:

import java.io.*; 

public class EmpleadoTest 
{ 

	public static void main(String args[]) 
	{         
		Empleado empUno = new Empleado("Enzo Tortore");         
		Empleado empDos = new Empleado("Marta Gargaglione");         
		empUno.setEdad(26);         
		empUno.setPuesto("Tecnico On Site");         
		empUno.setSalario(10000);         
		empUno.mostrarEmpleado();         
		empDos.setEdad(21);         
		empDos.setPuesto("Secretaria");        
 		empDos.setSalario(10000);         
		empDos.mostrarEmpleado(); 
	} 
} 

En este codigo fuente tendremos el metodo main() para poder utilizarlo, aca vemos la primera particularidad la cual es la creacion de dos objetos de la clase Empleado, como pueden ver esta clase no existe pero como coincide con nuestro nuestro archivo anterior sabra como buscarlo pero eso lo veremos enseguida, en este caso tambien usamos el constructor para informar los nombres de nuestros empleados. Luego utilizamos los metodos de la clase anterior para asignar los datos de los mismos: edad, puesto y salario, por ultimo utilizamos el metodo mostrarEmpleado() para mostrar los datos ingresados. Ahora debemos compilar nuestro programa y probarlo, si funciona correctamente deberan tener una salida del siguiente estilo:

tinchicus@dbn001vrt:~/java/program$ java EmpleadoTest 
Nombre: Enzo Tortore
Edad: 26
Puesto: Tecnico On Site
Salario: 10000.0
Nombre: Marta Gargaglione
Edad: 21
Puesto: Secretaria
Salario: 10000.0
tinchicus@dbn001vrt:~/java/program$

Al momento de compilarlo solamente lo hice con la clase EmpleadoTest, es decir el archivo EmpleadoTest.java por medio del siguiente comando:

 tinchicus@dbn001vrt:~/java/program$ javac EmpleadoTest.java,   

Pero al momento de compilarlo luego observe que tambien me compilo el archivo Empleado.java, aca les muestro un listado de los archivos:

tinchicus@dbn001vrt:~/java/program$ ls -l 
total 48
-rw-r--r-- 1 tinchicus tinchicus 1130 sep 19 12:57 Empleado.class
-rw-r--r-- 1 tinchicus tinchicus 551 sep 19 12:57 Empleado.java
-rw-r--r-- 1 tinchicus tinchicus 617 sep 19 12:57 EmpleadoTest.class
-rw-r--r-- 1 tinchicus tinchicus 420 sep 19 12:54 EmpleadoTest.java
-rw-r--r-- 1 tinchicus tinchicus 437 ago 29 22:16 MiPrimerPrograma.class
-rw-r--r-- 1 tinchicus tinchicus 113 ago 29 22:00 MiPrimerPrograma.java
-rw-r--r-- 1 tinchicus tinchicus 974 sep 18 17:33 Puppy.class
-rw-r--r-- 1 tinchicus tinchicus 467 sep 18 17:33 Puppy.java tinchicus@dbn001vrt:~/java/program$

Como pueden ver me lo creo automaticamente y gracias a esto pudimos utilizarlo correctamente, como conclusion en estas ultimas versiones el compilador (o por lo menos el open-jdk) cuando ve que necesita compilar mas de una clase, recuerden que creamos un objeto en la clase EmpleadoTest de la clase Empleado, lo hace automaticamente porque en algunos tutoriales que vi no es necesario primero compilar la clase Empleado y luego EmpleadoTest.

En resumen, hoy hemos visto que son y para que sirven los paquetes y el metodo Import, tambien como podemos crear un clase X para luego ser utilizada en otra, como el compilador se encargara de compilar todas las clases necesarias y/o utilizadas por nuestra clase o programa. Espero les haya sido util, sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios