Latest web development tutorials

paquete de Java (paquete)

Con el fin de organizar mejor la clase, Java proporciona un mecanismo de paquete para la diferencia entre el nombre de la clase del espacio de nombres.

El papel del paquete

  • Una función de organización similar o relacionado de la clase o interfaz en el mismo paquete, para encontrar y fácil de usar clase.
  • 2 como la misma carpeta, el paquete también utiliza el árbol de directorios de almacenamiento. Las clases en el mismo nombre de paquete es diferente, otro nombre de paquete de la clase es la misma, mientras que llama de forma simultánea dos tipos diferentes de paquetes en el mismo nombre de la clase, nombre del paquete debe añadirse distinción. Por lo tanto, el nombre del paquete para evitar conflictos.
  • 3 paquete también define los derechos de acceso, las clases tienen acceso al paquete de acceder a un conjunto de clases.

Java utiliza el paquete (paquete) Este mecanismo está diseñado para evitar conflictos de nombres, control de acceso, proporcionando buscar y localizar la clase (clase), las interfaces, enumeraciones (enumeraciones) y comentarios (anotación) y similares.

sintaxis de la sentencia de paquete es:

package pkg1[.pkg2[.pkg3…]];

Por ejemplo, un archivo de su contenido Something.java

package net.java.util
public class Something{
   ...
}

Entonces debería ser la trayectoria neta / java / util / Something.java por lo salvó. paquete de papel (paquete) es diferente para clasificar programa Java almacenado más fácilmente ser llamado por otro programa Java.

Un paquete (paquete) se puede definir como un conjunto de tipos (clases, interfaces, enumeraciones, y anotación) interconectados para proporcionar protección de acceso y funciones de gestión de espacio de nombres para estos tipos.

Éstos son algunos de Java en el paquete:

  • java.lang- clase base envasados
  • función Java.io- contiene funciones de entrada y de salida

Los desarrolladores pueden poner su propio conjunto de clases e interfaces, envasados, y definir su propio paquete. Y en el desarrollo real es que se anima a hacerlo, cuando se completa la clase de implementación, la agrupación de las clases relacionadas, de modo que otros programadores pueden determinar más fácilmente qué clases, interfaces, enumeraciones y comentarios son relacionados .

Dado que el paquete crea un nuevo espacio de nombres (namespace), por lo que sin nombrar a los conflictos con cualquier otro nombre de paquete. Utilizar este mecanismo de paquete, más fácil de implementar el control de acceso, y dejar que localizar la clase en cuestión fácil.


crear paquete

Crear un paquete, usted necesita tomar un nombre apropiado para este paquete. Entonces, si un archivo de origen que contiene las otras clases que se ofrecen este paquete, interfaz, anotación o enumeración tipo, el paquete esta declaración debe ser colocado al principio de este archivo de origen.

El paquete debe ser declarado en la primera línea del archivo de origen para cada archivo de origen sólo puede tener una sentencia de paquete, la ficha de cada tipo se aplica a ella.

Si no se utiliza un comunicado conjunto en el archivo de origen, entonces una de las clases, funciones, enumeración, comentarios, etc. serán colocados en un paquete sin nombre (paquete sin nombre) en.

ejemplo

Veamos un ejemplo que crea un paquete llamado los animales. Generalmente usar letras minúsculas para evitar las clases de nombres, interfaces, y el nombre del conflicto.

Unirse a un paquete de interfaz de animales (interfaz):

/* 文件名: Animal.java */
package animals;

interface Animal {
   public void eat();
   public void travel();
}

A continuación, añadir en el mismo paquete que implementa la interfaz:

package animals;

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

A continuación, compilar estos dos archivos y ponerlos en un subdirectorio denominado animales. Utilice el siguiente comando para ejecutar:

$ mkdir animals
$ cp Animal.class  MammalInt.class animals
$ java animals/MammalInt
Mammal eats
Mammal travel

palabras clave de importación

Para ser capaz de utilizar un miembro de un paquete, necesitamos importar explícitamente el paquete en el programa Java. Uso de la "importación" comunicado para realizar esta función.

En java declaraciones de importación de archivos de origen se debe colocar después de la sentencia de paquete, todas las clases definidas anteriormente, no se puede, también puede tener múltiples, su sintaxis es:

import package1[.package2…].(classname|*);

Si un paquete, una clase que desea utilizar este paquete en otra clase, a continuación, el nombre del paquete se puede omitir.

ejemplo

El siguiente paquete de nómina ya contiene la clase de empleado, a continuación, agregar una clase al paquete de nómina de Boss. Cuando la clase de referencia de clase de Boss empleado no puede utilizar instancias de prefijo nómina clase de Boss sigue.

package payroll;

public class Boss
{
   public void payEmployee(Employee e)
   {
      e.mailCheck();
   }
}

¿Qué pasa si la clase no es el paquete de nómina jefe va? clase jefe tiene que utilizar uno de los siguientes métodos para hacer referencia a otras clases del paquete

Utilice el nombre completo de la descripción de la clase, tales como:

payroll.Employee

Con la introducción de palabras clave de importación, utilizar el comodín "*"

import payroll.*;

El uso de palabras clave de importación introduce la clase Empleado

import payroll.Employee;

Nota:

archivo de clase puede contener cualquier número de declaración de importación. declaración de importación deberá ser posterior a la sentencia de paquete, antes de la declaración de la clase.


estructura de directorio del paquete

Clase en el paquete tiene dos resultados principales:

  • Nombre del paquete pasa a formar parte del nombre de la clase, como hemos comentado anteriormente.
  • Nombre del paquete debe coincidir con el código de bytes correspondiente en el mismo encuentro estructura de directorios.

He aquí una forma sencilla de gestionar sus archivos en java:

Las clases, interfaces y otros tipos de código fuente en un texto, el nombre de este archivo es el nombre del tipo y extensión .java. Por ejemplo:

// 文件名 :  Car.java

package vehicle;

public class Car {
   // 类实现  
}

A continuación, los archivos de origen en un directorio, el nombre del directorio a la clase correspondiente de su propio paquete.

....\vehicle\Car.java

Ahora, el nombre de la clase correcta y la ruta se verá como la siguiente:

  • nombre de la clase -> vehicle.Car

  • Nombre de ruta -> vehículo \ Car.java (en Windows)

Por lo general, una empresa utiliza su forma inversa de nombres de dominio de Internet como el nombre del paquete, por ejemplo: el dominio de Internet es apple.com, todos los nombres de los paquetes están en principio com.apple. Cada nombre de paquete correspondiente a una parte de un subdirectorio.

Por ejemplo: La empresa cuenta con un com.apple.computers el paquete, que contiene un archivo de origen Dell.java conocido, la correspondiente debe ser como la siguiente serie de subdirectorios:

....\com\apple\computers\Dell.java

Tiempo de compilación, el compilador crea un archivo de salida diferente, el nombre del archivo de salida es el nombre de este tipo se define en el tipo de paquete de cada clase, interfaz y añade como sufijo una extensión .class. Por ejemplo:

// 文件名: Dell.java

package com.apple.computers;
public class Dell{
      
}
class Ups{
      
}

Ahora, utilizamos la opción -d para compilar el archivo, de la siguiente manera:

$javac -d . Dell.java

Esto colocará así al compilar el archivo:

.\com\apple\computers\Dell.class.\com\apple\computers\Ups.class

Te puede gustar esto para importar toda \ com \ manzana \ informática \ clase definida en la interfaz:

import com.apple.computers.*;

.class archivos compilados después y debe .JAVA archivos de código fuente, se colocan en el directorio debe corresponder con el nombre del paquete. Sin embargo, el camino no requiere archivo .class con la ruta correspondiente .java misma. Puede organizar los directorios de origen y de clase independientes.

<path-one>\sources\com\apple\computers\Dell.java
<path-two>\classes\com\apple\computers\Dell.class

De esta manera, se puede compartir el directorio de clases para otros programadores, en lugar de revelar su fuente. De esta manera gestionar la fuente y los archivos de clase pueden dejar que el compilador y la máquina virtual de Java (JVM) que se pueden encontrar todo tipo utilizados en el programa.

Absoluta clase rutas de directorio llamada ruta de clase. Situado en el sistema CLASSPATH variable. Compilador y la máquina virtual de Java por el nombre del paquete a la ruta de clase después de archivos .class de construcción de pistas.

<Ruta dos> \ classes es la ruta de clase, nombre del paquete es com.apple.computers, y el compilador y la JVM estará en <ruta de dos> \ classes \ com \ \ manzana compters encuentran los archivos .class.

Una ruta de clase puede contener varios caminos. Múltiples rutas de acceso deben estar separados por un delimitador. Por defecto, el compilador y la JVM encontrar el directorio actual. archivo JAR que contiene la plataforma Java, de acuerdo con la clase correspondiente, por lo que por defecto en un directorio en la ruta de clase.


Ajuste variable del sistema CLASSPATH

Utilice el siguiente comando para mostrar la variable CLASSPATH actual:

  • plataformas Windows (línea de comandos de DOS) -> C: \> set CLASSPATH
  • plataformas UNIX (Bourne Shell bajo) ->% echo $ CLASSPATH
Retire el contenido de la variable CLASSPATH actual:
  • plataformas Windows (línea de comandos de DOS) -> C: \> set CLASSPATH =
  • plataformas UNIX (Bourne Shell bajo) ->% unset CLASSPATH export CLASSPATH;

Configuración de la variable CLASSPATH:

  • plataformas Windows (línea de comandos de DOS) -> set CLASSPATH = C: \ Users \ jack \ java \ classes
  • plataformas UNIX (Bourne Shell bajo) -> = / home / conector / java / clases% CLASSPATH export CLASSPATH;