Librerías de Clases en Java y Netbeans

26 abril 2009

Guía de Laboratorio 3: Polimorfismo y Librerías de Clases

Auxiliar de Cátedra: Hugo Alejandro Barrientos

Esta guía está dedicada para poner en práctica los conocimientos aprendidos en las prácticas anteriores, tales como manejo de clases, métodos, instancias, herencia getters y setters. Además aprenderemos a manejar el polimorfismo, concepto de la programación orientada a objetos, para diseñar nuestras aplicaciones bajo un esquema de jerarquías de herencia, dentro del ámbito de Java con Netbeans, y aprenderemos además a crear nuestras propias librerías con clases y a añadirlas a un proyecto de Netbeans agregando a las referencias de librerías el respectivo Jar contenedor de la librería.

Operador instanceof

El operador instanceof sirve para consultar si un objeto es una instancia de una clase determinada, o de su padre. Pareciera absurdo tratar de conocer cuál es la clase que da lugar a una instancia específica, sin embargo es de mucha utilidad cuando se trabaja con interfaces y herencia a la vez. Veamos un ejemplo:

public class primo {

private int numero;
private int vectorPrimos[];
private int tamañoV;

public primo(){
this.tamañoV=25;
this.vectorPrimos= new int [this.tamañoV];
this.numero=0;
}
}


public class Main {
public static void main(String[] args) {

primo p = new primo();

if (esPrimo(p)){
System.out.println("ES INSTANCIA DE PRIMO");
}
}
public static boolean esPrimo(primo p) {
return (p instanceof primo);
}
}


Lo que realiza este sencillo ejemplo es comprobar si la instancia llamada “p” corresponde a la clase primo, definida anteriormente, con la ayuda del método estático “esPrimo” que verifica con el operador instanceof si la instancia que se traslada por el parámetro es de la clase que se evalúa. El resultado de dicha operación es true o false.

Librerías de Clases

Ahora aprenderemos a crear nuestras propias librerías de clases. Estas nos sirven para tener un conjunto de clases que nos sirven para realizar funciones específicas, creadas por el programador y que podremos importar hacia otras aplicaciones Java e implementar dicha funcionalidad.

Cabe mencionar que debemos tener una gran capacidad de análisis, para lograr abstraer las clases y crear objetos que funcionen de una manera adecuada.

Para crear nuestra librería, debemos crear un nuevo proyecto Java en Netbeans, escogiendo la opción de Java Class Library:



Como pueden leer en la descripción dentro de la imagen, una Class Library no contiene una clase Main para que se pueda correr o implementar las clases que se escriban dentro de la misma. Recuerde que la librería dará insumos a sus aplicaciones para realizar tareas a otras aplicaciones o programas.

Crearemos una librería que nos servirá para encontrar algunas familias o sucesiones de números. Empezaremos con la sucesión de números Fibonacci y los famosos números Primos. Se crearán clases para encontrar dichas sucesiones de números, conocer el Fibonacci que desee el usuario, evaluar si un número es primo o no, entre otras operaciones. Además, la clase para los fibonacci debe de facilitar métodos y atributos para encontrar los fibonacci que a la vez son primos.

A medida que el programador vaya escribiendo y concibiendo sus clases, la librería debe lucir de la siguiente manera:

Para implementar esta librería, basta con construir el proyecto, para generar un Jar que contenga las clases. Luego creamos una nueva aplicación Java que llamaremos ImplementarNumeros:


Ahora, con el proyecto creado, hacemos click derecho sobre el nombre del proyecto en el apartado de proyectos de Netbeans y nos dirigimos a las propiedades del mismo:


Nos dirigimos a la categoría de Libraries. Dentro de ella, agregamos un compilado, que puede ser un proyecto de Netbeans, un folder, una Class Libraryo un Jar. En este caso, agregaremos un Jar, así que presionamos el botón de Add JAR/Folder y buscamos el Jar de nuestra Class Library (Se encuentra en la carpeta dist dentro del folder del proyecto creado por Netbeans).

Al agregarlo, luego dentro del Main del proyecto, importamos las librerías de esta manera:


import numeros.fibonacci;
import numeros.primo;

Y ya podremos utilizar toda la funcionalidad de nuestras clases dentro de un proyecto e implementarlas.

La implementación podría ser muy parecida a esta:

public static void main(String[] args) {

fibonacci f = new fibonacci();
f.encontrarFibos();
int v[]=f.getFibos();

for(int i=0;i<25;i++)
System.out.println(v[i]);
}


Ejercicios:

Alimente su librería de clases con las familias de números:

Números Perfectos: Son números naturales que son iguales a la suma de sus divisores propios positivos sin incluirse a él mismo.

Números Compuestos: Es todo número natural no primo, a excepción de 1, se denomina compuesto, es decir que tiene uno o más divisores distintos a 1 y sí mismo.