viernes, 23 de marzo de 2007

Paquetes y jererquias en Java

Paquetes de Java.

¿Qué es un package?

Un package es una agrupación de clases.

Los nombres de los packages se suelen escribir con minúsculas, para distinguirlos de las clases, que empiezan por mayúscula. El nombre de un package puede constar de varios nombres unidos por puntos (los propios packages de Java siguen esta norma, como por ejemplo java.awt.event).

Prácticamente son bibliotecas a las que el usuario puede acceder y que ofrecen varias funciones.

Los usuarios pueden también crear paquetes, que contengan todas las clases que ha definido para poner en marcha algunas funciones que luego usará en otros programas.

package pkgName; que debe ser la primera sentencia del fichero sin contar comentarios y líneas en blanco.

Las clases de un package se almacenan en un directorio con el mismo nombre largo (path) que el package.

Por ejemplo, la clase, es.ceit.jgjalon.infor2.ordenar.QuickSort.class debería estar en el directorio,
CLASSPATH\es\ceit\jgjalon\infor2\ordenar\QuickSort.class, donde CLASSPATH es una variable de entorno del PC que establece la posición absoluta de los directorios en los que hay clases de Java (clases del sistema o de usuario), en este caso la posición del directorio es en los discos locales del ordenador.

Los packages se utilizan con las finalidades siguientes:

1. Para agrupar clases relacionadas.

2. Para evitar conflictos de nombres (se recuerda que el dominio de nombres de Java es la Internet). En caso de conflicto de nombres entre clases importadas, el compilador obliga a cualificar en el código los nombres de dichas clases con el nombre del package.

3. Para ayudar en el control de la accesibilidad de clases y miembros.

¿Cómo funcionan los packages?
Con la sentencia import packname; se puede evitar tener que utilizar nombres muy largos, al mismo tiempo que se evitan los conflictos entre nombres. Si a pesar de todo hay conflicto entre nombres de clases, Java da un error y obliga a utilizar los nombres de las clases cualificados con el nombre del package.

El importar un package no hace que se carguen todas las clases del package: sólo se cargarán las clases public que se vayan a utilizar. Al importar un package no se importan los sub-packages.
Éstos deben ser importados explícitamente, pues en realidad son packages distintos. Por ejemplo, al importar java.awt no se importa java.awt.event.Es posible guardar en jerarquías de directorios diferentes los ficheros *.class y *.java, con objeto por ejemplo de no mostrar la situación del código fuente.
Los packages hacen referencia a los ficheros compilados *.class.

Esta es la gran ventaja de Java, el número de clases ya establecidas que realizan variadas tareas, y es también la parte que sigue creciendo más y más, y que sigue poniéndose al día con las nuevas versiones de.

Los paquetes de Java son tantos que sólo hablare de dos es decir, los que nos sirven para interfaces gráficas y apliques.

El núcleo del lenguaje Java contiene sólo las palabras claves para la construcción de las clases, los comentarios, las construcciones normales en if, switch, while, do-while, for, etiquetas, break, continue e return (falta el goto).

Todo lo demás está contenido en los paquetes informáticos del lenguaje, incluidas las normales primitivas de Entrada y de Salida.

Jerarquía de Clases en Java
Figuras planas

Consideremos las figuras planas cerradas como el rectángulo, y el círculo. Tales figuras comparten características comunes como es la posición de la figura, de su centro, y el área de la figura, aunque el procedimiento para calcular dicha área sea completamente distinto. Podemos por tanto, diseñar una jerarquía de clases, tal que la clase base denominada Figura, tenga las características comunes y cada clase derivada las específicas.

La clase Figura es la que contiene las características comunes a dichas figuras concretas por tanto, no tiene forma ni tiene área. Esto lo expresamos declarando Figura como una clase abstracta, declarando la función miembro área abstract.

Las clases abstractas solamente se pueden usar como clases base para otras clases. No se pueden crear objetos pertenecientes a una clase abstracta. Sin embargo, se pueden declarar variables de dichas clases.

En el juego del ajedrez podemos definir una clase base denominada Pieza, con las características comunes a todas las piezas, como es su posición en el tablero, y derivar de ella las características específicas de cada pieza particular.

Así pues, la clase Pieza será una clase abstracta con una función abstract denominada mover, y cada tipo de pieza definirá dicha función de acuerdo a las reglas de su movimiento sobre el tablero.
A continuación vemos un ejemplo de una jerarquía de clases de una cuenta bancaria:


CYBERGRAFIA

http://www.htmlpoint.com/guidajava/java_03.htmhttp://
http://www.htmlpoint.com/guidajava/java_03.htmhttp://
http://www.geocities.com/CollegePark/Quad/8901/cap05.htmhttp://
www.geocities.com/CollegePark/Quad/8901/cap05.htmhttp://
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia.htmhttp://
www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia.htmhttp://
www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/paquetes.htm
http://www.monografias.com/trabajos16/java/java.shtmlhttp://
http://www.monografias.com/trabajos16/java/java.shtmlhttp://
http://www.htmlpoint.com/guidajava/java_14.htmhttp://
www.htmlpoint.com/guidajava/java_14.htmhttp://
www.lab.dit.upm.es/~lprg/material/apuntes/packages/packages.htm

No hay comentarios: