De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Un paquete de Java organiza las clases de Java en espacios de nombres , [1] proporcionando un espacio de nombres único para cada tipo que contiene. Las clases del mismo paquete pueden acceder a los miembros protegidos y privados del paquete de cada una.

En general, un paquete puede contener los siguientes tipos de tipos : clases, interfaces, enumeraciones y tipos de anotaciones . Un paquete permite a un desarrollador agrupar clases (e interfaces) juntas. Todas estas clases estarán relacionadas de alguna manera; es posible que todas tengan que ver con una aplicación específica o realizar un conjunto específico de tareas. Los programadores también suelen utilizar paquetes para organizar clases que pertenecen a la misma categoría o que proporcionan una funcionalidad similar.

Usando paquetes [ editar ]

En un archivo fuente de Java, el paquete al que pertenecen la clase o clases de este archivo se especifica con la package palabra clave . Esta palabra clave suele ser la primera palabra clave en el archivo de origen. Como máximo, puede aparecer una declaración de paquete en un archivo fuente.

paquete  java.awt.event ;

Para usar las clases de un paquete dentro de un archivo fuente de Java, es conveniente importar las clases del paquete con una importdeclaración. La siguiente declaración

importar  java.awt.event. * ;

importa todas las clases del java.awt.eventpaquete, mientras que la siguiente declaración

import  java.awt.event.ActionEvent ;

importa solo la ActionEventclase del paquete. Después de cualquiera de estas declaraciones de importación, se ActionEventpuede hacer referencia a la clase usando su nombre de clase simple:

ActionEvent  myEvent  =  new  ActionEvent ();

Las clases también se pueden utilizar directamente sin una declaración de importación utilizando el nombre completo de la clase. Por ejemplo,

java . awt . evento . ActionEvent  myEvent  =  nuevo  java . awt . evento . ActionEvent ();

no requiere una declaración de importación previa.

Javadoc y anotaciones en todo el paquete [ editar ]

La documentación que explica el paquete en su conjunto está escrita como Javadoc en un archivo llamado exactamente `package-info.java`. Ese archivo también es el lugar para que las anotaciones se utilicen en todas las clases del paquete. Consulte la Especificación del lenguaje Java .

El paquete sin nombre [ editar ]

Si no se utiliza una declaración de paquete, las clases se colocan en un paquete sin nombre. Las clases de un paquete sin nombre no pueden ser importadas por clases de ningún otro paquete. [2] El tutorial oficial de Java desaconseja esto:

En términos generales, un paquete sin nombre es solo para aplicaciones pequeñas o temporales o cuando recién está comenzando el proceso de desarrollo. De lo contrario, las clases y las interfaces pertenecen a paquetes con nombre. [3]

Protección de acceso al paquete [ editar ]

Los miembros públicos y las clases son visibles en todas partes y los miembros privados solo son visibles en la misma clase. Las clases dentro de un paquete pueden acceder a clases y miembros declarados con acceso predeterminado ( paquete privado ), así como a miembros de clase declarados con el protectedmodificador de acceso. El acceso predeterminado (paquete privado) se aplica cuando una clase o miembro no se ha declarado como public, protectedo private. Por el contrario, las clases de otros paquetes no pueden acceder a clases y miembros declarados con acceso predeterminado. Sin embargo, protectedse puede acceder a los miembros de clase declarados como desde las clases del mismo paquete, así como desde las clases de otros paquetes que son subclases de la clase declarante. [4]

Creación de archivos JAR [ editar ]

Los archivos JAR se crean con la utilidad de línea de comandos jar. El comando

jar cf myPackage.jar * .class

comprime todos los archivos .class en el archivo JAR myPackage.jar . La opción 'c' en la línea de comando le dice al comando jar que "cree un nuevo archivo". La opción 'f' le dice que cree un archivo. El nombre del archivo aparece a continuación antes del contenido del archivo JAR.

Convenciones de nomenclatura de paquetes [ editar ]

Los paquetes generalmente se definen utilizando un patrón de nomenclatura jerárquico , con algunos niveles en la jerarquía separados por puntos (se pronuncia "punto"). Aunque los paquetes más bajos en la jerarquía de nombres a menudo se denominan "subpaquetes" de los paquetes correspondientes más altos en la jerarquía, casi no existe una relación semántica entre los paquetes. La Especificación del lenguaje Java establece convenciones de nomenclatura de paquetes para evitar la posibilidad de que dos paquetes publicados tengan el mismo nombre. Las convenciones de nomenclatura describen cómo crear nombres de paquetes únicos, de modo que los paquetes que se distribuyen ampliamente tengan espacios de nombres únicos. Esto permite que los paquetes se instalen y cataloguen por separado, fácil y automáticamente..

En general, el nombre de un paquete comienza con el nombre de dominio de nivel superior de la organización y luego el dominio de la organización y luego los subdominios, enumerados en orden inverso. Luego, la organización puede elegir un nombre específico para su paquete. Los componentes posteriores del nombre del paquete varían según las convenciones de nomenclatura internas de la organización. [5]

Por ejemplo, si una organización en Canadá llamada MySoft crea un paquete para manejar fracciones, nombrar el paquete ca.mysoft.fractions distingue el paquete de fracciones de otro paquete similar creado por otra empresa. Si una empresa alemana llamada MySoft también crea un paquete de fracciones, pero lo llama de.mysoft.fractions , entonces las clases de estos dos paquetes se definen en un espacio de nombres único e independiente.

Las convenciones completas para eliminar la ambigüedad de los nombres de paquetes y las reglas para nombrar paquetes cuando el nombre de dominio de Internet no se puede utilizar directamente como nombre de paquete se describen en la sección 7.7 de la Especificación del lenguaje Java. [6]

Paquetes principales en Java SE 8 [ editar ]

El paquete java.lang está disponible sin el uso de una declaración de importación.

Módulos [ editar ]

En Java 9 , los "módulos", una especie de colección de paquetes, están planificados como parte de Project Jigsaw; estos fueron llamados anteriormente "superpaquetes" y originalmente planeados para Java 7.

Los módulos describirán sus dependencias en una declaración de módulo que se colocará en un archivo llamado module-info.java en la raíz de la jerarquía del archivo fuente del módulo. El JDK podrá comprobarlos tanto en tiempo de compilación como en tiempo de ejecución. El propio JDK se modulará para Java 9 . [7]

Referencias [ editar ]

  1. ^ James Gosling, Bill Joy, Guy Steele, Gilad Bracha, La especificación del lenguaje Java, tercera edición , ISBN  0-321-24678-0 , 2005. En la Introducción, se indica "El capítulo 7 describe la estructura de un programa, que está organizado en paquetes similares a los módulos de Modula ".
  2. ^ "Capítulo 7. Paquetes" . Docs.oracle.com . Consultado el 15 de septiembre de 2013 .
  3. ^ [1]
  4. ^ http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
  5. ^ Convenciones de código para el lenguaje de programación Java: 9. Convenciones de nomenclatura
  6. ^ http://docs.oracle.com/javase/specs/jls/se6/html/packages.html#7.7
  7. ^ "Resumen del módulo JDK" . Oracle Corporation . 2015-10-23 . Consultado el 29 de noviembre de 2015 .

Enlaces externos [ editar ]

  • Javadocs de la API de Java SE 10