sábado, 24 de marzo de 2007

LOS PAQUETES DE JAVA - Johanna Carrasco

Un paquete de Java es un sistema de las clases que se agrupan juntas.

Esto que agrupa ayuda a organizar las clases de Java y las clases múltiples codevent de Java con el mismo nombre.

Los paquetes informáticos son colecciones de clases, contenidas en una colección que las une. Prácticamente son bibliotecas a las que el usuario puede acceder y que ofrecen varias funciones.
Los usuarios pueden también crear paquetes informáticos, por ejemplo, haciendo que contengan todas las clases que ha definido para poner en marcha algunas funciones que luego usará en varios programas. Sin embargo, esto no nos interesa porque lo que queremos es ver los paquetes informáticos más interesantes en Java.
Esta es la auténtica potencia de Java, el número de clases ya establecidas que realizan las más variadas tareas, y es también la parte que sigue creciendo más y más, y que sigue poniendose al día con las nuevas versiones de Java (JDK 1.3 bien contiene 18Mb). Los paquetes informáticos de Java son tantos que sólo describiré algunos por encima en un capítulo entero (el capítulo 3) del curso. Veremos de forma detallada más o menos dos, es decir, los que nos sirven para definir interfaces gráficas y apliques. Obviamente todos los paquetes informáticos del lenguaje están descritos en la mastodóntica guía en línea del JDK que se puede bajar junto al paquete del compilador (La JDK Documentation 1.3 beta es de 105 Megabyte, comprimida es de unos treinta Megas). Ésta tambien es gratuita y, si os apetece pasar un par de horas bajándola, os aconsejo que la cojáis junto al compilador. De todas formas está a vuestra disposición en línea (tenéis el enlace en la página www.javasoft.com o www.java.sun.com , es prácticamente igual, son primos hermanos).
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), que veremos en detalle en el próximo capítulo. Todo lo demás está contenidos en los paquetes informáticos del lenguaje, incluidas las normales primitivas de Entrada y de Salida. En este párrafo veremos la lista de los paquetes informáticos de Java y veremos uno en particular, el que nos interesa para escribir nuestra primera aplicación Java aún antes de haber visto las construcciones, es decir, en las que podemos encontrar las instrucciones de entrada y salida.

La lista completa de los paquetes informáticos de Java 1.2.1 en orden alfabético es el siguiente:

com.sun.image.codec.jpeg
com.sun.java.swing.plaf.windows
com.sun.java.swing.plaf.motif
java.applet
java.awt
java.awt.color
java.awt.datatransfer,
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.jar
java.util.zip
javax.accessibility
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parse
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
org.omg.CORBA
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.portable
org.omg.CORBA.TypeCodePackage
org.omg.CosNaming
org.omg.CosNaming.NamingContextPackage
sun.tools.ttydebug
sunw.io, sunw.util.

Realmente parecen pocos, parece que haya dicho una tontería cuando me refería a la potencia de Java, sin embargo si pensáis que sólo el paquete informático Java.io comprende 50 clases y 10 interfaces, comprenderéis que los de antes son una colección de clases consistente.
Llegados a este punto nos gustaría hacer la entrada y la salida de consolle y para hacerlo debemos usar el paquete informático java.lang .
para usar un paquete informático en una de nuestras clases, antes de definir la clase, tenemos que introducir la instrucción import. Por ejemplo, si queremos usar el paquete informático java.awt tenemos que introducir al comienzo de nuestro archivo:

import java.awt.*;

El * indica que queremos usar todas las clases, en cambio si queremos usar sólo una clase lo podemos especificar, por ejemplo, import java.awt.Frame; podremos usar la clase Frame del awt. En nuestro caso, en el que queremos hacer una operación de entrada, tendremos que declarar al empezar import java.lang.*;
o, sabiendo que la clase del paquete informático java.lang que contiene los métodos para hacerlo es System, podremos escribir

import java.lang.System;

La clase System, a su vez, contendrá en su interior una import java.io (que es el paquete informático para la entrada y la salida) para acceder a las clases de la entrada y de la salida, y las usará para mandar lo que queramos en la pantalla.
Vimos un ejemplo de paquete informático que en su interior llama a otro paquete informático para que lleve a cabo unas tareas. En estas bibliotecas Java ocurre eso a menudo y es precisamente este fenómeno que hace de Java un lenguaje incomprensible para la mayoría. Sin embargo, superado este inconveniente que se refiere a este aspecto del lenguaje, la programación se hace fácil e inmediata.
He introducido el paquete informático java.lang. Ahora os digo también que este es el más importante de Java, en éste están contenidos las clases fundamentales del lenguaje, hasta el punto de que no hace falta declarara el import, porque Java lo introduce automáticamente.
Además me gustaría detenerme en un aspecto fundamental de la introducción de los paquetes informáticos. Si importo en mi archivo el paquete informático java.lang, éste importará a su vez el paquete informático java.io, y yo desde mi archivo no podré usar las clases de java.io; para hacerlo tengo que importarlo explícitamente. Esto sucede aunque programe una aplicación en más de un archivo (con más clases), en cada archivo tengo que importar los paquetes informáticos que necesito para la clase que estoy estableciendo, no basta con importarlos en una sola. Veamos pues las clases que contiene este paquete informático java.lang tan importante para el lenguaje:

Boolean
hemos dicho que los tipos de datos se pueden representar también con objetos dichos;

contenedores
es una clase que genera los contenedores para los tipos de datos boolean (verdadero, falso).

Byte
es la clase que genera los contenedores para los tipos de datos enteros cortos (de un byte).

Character
es una clase que genera los contenedores para los tipos de datos caracteres.

Character.Subset
es la clase que genera los contenedores para los tipos de datos caracteres con codificación unicode.

Character.UnicodeBlock
es la clase que genera los contenedores para los tipos de caracteres con codificación unicode 2.0.

Class
representa las clases y las interfaces a runtime (en ejecución), en Java es posible, en tiempo de ejecución, crear, ejecutar y compilar clases. El compilador y el ejecutor se mezclan de una forma rara, sin embargo a nosostros no nos sirven estas clases "especiales" porque escribiremos unas aplicaciones fáciles.

ClassLoader
cargador de clases a tiempo de ejecución.

Compiler
compilador de clases a tiempo de ejecución.

Double
es la clase que genera los contenedores para los tipos de datos reales en coma móvil de 64 bit.

Float
es la clase que genera los contenedores para los tipos de datos reales de 32 bit en coma móvil.

Integer
es la clase que genera los contenedores para los tipos de datos enteros.

Long
es la clase que genera los contenedores para los tipos de datos enteros dobles.

Math
contiene métodos que simulan funciones matemáticas.

Number
clase de objetos contenedores de números genéricos.

Object
es la clase de la que derivan todas las clases del lenguaje Java, es decir, cada clase es subclase (no necesariamente directa) de ésta.

Package
contiene métodos para extrapolar informaciones en los paquetes informáticos de Java.

Process
Java es un lenguaje que permite gestionar Thread, es decir pequeños programas que corren en paralelo. Esta clase se ocupa de ellos, como las demás clases de java.lang: Runtime, RuntimePermission, Thread, ThreadGroup, ThreadLocal, Throwable

SecurityManager
para la seguridad

Short
es la clase que genera los contenedores para los tipos de datos enteros cortos.

String
es la clase que genera los contenedores para los tipos de datos cadenas de caracteres.

StringBuffer
es la clase que genera los contenedores para los tipos de datos cadenas de caracteres modificables.

System
es la clase que interactúa con el sistema y contiene muchos métodos útiles, y unas referencias a otras clases (llamadas class field), es la que usaremos, por ejemplo, para crear una salida sobre la pantalla a caracteres.

Void
es la clase que genera los contenedores para los tipos de datos void, es decir, sin tipo. Éste parece un tipo de dato inútil, sin embargo veremos que no lo es en absoluto, además es utilísimo. En realidad, es útil cuando queremos definir un método-procedimiento (un método que no tiene valor de vuelta), en Java existen sólo dos funciones que obligan a devolver un valor del tipo que declaran. Declarando un método como void, se simula el procedimiento, es decir, no se necesita la vuelta.
JOHANNA CARRASCO GOMEZ
Cod. 221336104

No hay comentarios: