Latest web development tutorials

package Java (package)

Afin de mieux organiser la classe, Java fournit un mécanisme de package pour la différence entre le nom de la classe de l'espace de noms.

Le rôle de l'emballage

  • Une fonction organisation similaire ou connexe de la classe ou de l'interface dans le même paquet, pour trouver et facile à utiliser la classe.
  • 2 comme le même dossier, le paquet a également utilisé l'arborescence des répertoires de stockage. Les classes dans le même nom de package est différent, un nom de la classe de package différent est le même, tout en appelant simultanément deux types de paquets différents dans le même nom de la classe, le nom du package doit être ajouté distinction. Ainsi, le nom du paquet pour éviter les conflits.
  • 3 package définit également les droits d'accès, les classes ont accès au package pour accéder à un ensemble de classes.

Java utilise package (package) Ce mécanisme est conçu pour éviter les conflits de noms, contrôle d'accès, fournissant la recherche et de localiser la classe (classe), interfaces, énumérations (énumérations) et commentaires (annotation) et similaires.

syntaxe de l'instruction de package est:

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

Par exemple, un fichier son contenu Something.java

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

Ensuite, il doit être le chemin net / java / util / Something.java donc sauvé. package (package) rôle consiste à classer les différents programme Java stocké plus facilement être appelé par un autre programme java.

Un paquet (package) peut être défini comme un ensemble de types (classes, interfaces, énumérations et annotation) reliés entre eux pour fournir une protection d'accès et les fonctions de gestion de l'espace de noms pour ces types.

Voici quelques-uns de Java dans le package:

  • java.lang- classe de base emballé
  • fonction Java.io- contient des fonctions d'entrée et de sortie

Les développeurs peuvent mettre leur propre ensemble de classes et interfaces, emballés, et de définir votre propre forfait. Et dans le développement réel doit être encouragé à le faire, lorsque vous avez terminé la classe de mise en œuvre, le regroupement des classes connexes, de sorte que d'autres programmeurs peuvent plus facilement déterminer quelles classes, interfaces, énumérations, et les commentaires sont liés .

Depuis le paquet crée un nouvel espace de noms (namespace), sans conflits de noms avec un autre nom de package. Utilisez ce mécanisme de package, plus facile à mettre en œuvre le contrôle d'accès, et de laisser localiser la classe concernée plus facile.


Créer package

Créer un package, vous devez prendre un nom approprié pour ce paquet. Ensuite, si un fichier source qui contient les autres classes offert ce paquet, interface, annotation ou enum de type, le paquet cette déclaration doit être placé au début de ce fichier source.

Package doit être déclaré dans la première ligne du fichier source pour chaque fichier source ne peut avoir qu'une instruction de package, le fichier pour chaque type sont appliqué.

Si vous n'utilisez une instruction de package dans le fichier source, puis l'une des classes, fonctions, énumération, commentaires, etc. seront placés dans un emballage sans nom (package sans nom) dans.

exemple

Regardons un exemple qui crée un package appelé les animaux. Généralement utiliser des lettres minuscules pour éviter les classes de nommage, les interfaces et le nom du conflit.

Joignez-vous à une interface de paquet animaux (interface):

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

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

Ensuite, ajoutez dans le même package qui implémente l'interface:

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();
   }
} 

Ensuite, compiler ces deux fichiers et les mettre dans un sous-répertoire nommé animaux. Utilisez la commande suivante pour exécuter:

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

mots-clés à l'importation

Pour être en mesure d'utiliser un membre d'un ensemble, nous avons besoin d'importer explicitement le paquet dans le programme Java. Utilisation de la "importation" déclaration à remplir cette fonction.

Dans java déclarations d'importation de fichier source doit être située après l'instruction package, toutes les classes définies précédemment, vous ne pouvez pas, vous pouvez également avoir plusieurs, sa syntaxe est:

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

Si un package, une classe que vous souhaitez utiliser ce paquet dans une autre classe, le nom de package peut être omis.

exemple

Le paquet de paie suivant contient déjà la classe des employés, puis ajouter une classe à l'ensemble de la paie patron. Lorsque patron employé classe de référence de classe ne peut pas utiliser des instances de préfixe de paie classe patron suit.

package payroll;

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

Que faire si la classe est pas package de paie Boss? classe patron doit utiliser l'une des méthodes suivantes pour faire référence à d'autres classes dans le paquet

Utilisez le nom complet de la description de classe, tels que:

payroll.Employee

Avec l'introduction de mots-clés à l'importation, utilisez le caractère générique "*"

import payroll.*;

Utilisation de mot-clé import introduit des employés de classe

import payroll.Employee;

Remarque:

fichier de classe peut contenir un nombre quelconque de déclaration d'importation. déclaration d'importation doit être postérieure à la déclaration de l'emballage, avant la déclaration de classe.


package structure de répertoire

Classe sur l'emballage ont deux principaux résultats:

  • Nom du package devient une partie du nom de la classe, comme nous avons discuté plus tôt.
  • Nom du package doit correspondre au code d'octet correspondant dans le même match de structure de répertoire.

Voici un moyen simple de gérer vos fichiers en java:

Les classes, les interfaces, et d'autres types de code source dans un texte, le nom de ce fichier est le nom du type, et .java prolongation. Par exemple:

// 文件名 :  Car.java

package vehicle;

public class Car {
   // 类实现  
}

Ensuite, les fichiers source dans un répertoire, le nom du répertoire à la classe correspondante de son propre paquet.

....\vehicle\Car.java

Maintenant, le nom de classe correct et le chemin se présente comme suit:

  • Nom de classe -> vehicle.Car

  • Pathname -> véhicule \ Car.java (dans les fenêtres)

En règle générale, une entreprise utilise sa forme inversée des noms de domaine Internet que son nom de paquet, par exemple: le domaine Internet est apple.com, tous les noms de paquets sont en début com.apple. Chaque nom de package correspondant à une partie d'un sous-répertoire.

Par exemple: La société a une com.apple.computers le paquet, qui contient un fichier source Dell.java connu, le correspondant devrait être comme la série suivante de sous-répertoires:

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

Compiler le temps, le compilateur crée un fichier de sortie différent, le nom du fichier de sortie est le nom de ce type est défini dans le type de chaque classe, interface paquet, et a ajouté que le suffixe d'un poste. Par exemple:

// 文件名: Dell.java

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

Maintenant, nous utilisons l'option -d pour compiler le fichier, comme suit:

$javac -d . Dell.java

Cela placera comme ceci pour compiler le fichier:

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

Vous pouvez aimer ce importer tous \ com \ Apple \ ordinateurs \ classe définie dans l'interface:

import com.apple.computers.*;

fichiers .class compilés après et devraient .java fichiers source, ils sont placés dans le répertoire doit correspondre avec le nom du package. Cependant, le chemin d'accès ne nécessite pas le fichier .class avec chemin correspondant .java même. Vous pouvez organiser des répertoires source et de classe distincts.

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

De cette façon, vous pouvez partager votre répertoire classes à d'autres programmeurs, plutôt que de révéler leur source. De cette façon de gérer la source et les fichiers de classe peuvent laisser le compilateur et la machine virtuelle Java (JVM) vous pouvez trouver tous les types utilisés dans le programme.

Absolute classe chemins de répertoire appelé chemin de classe. Situé dans la variable système CLASSPATH. Compiler et la machine virtuelle java par le nom du package pour le chemin de classe de fichier plus tard la construction de chemin .class.

<Path- deux> \ classes est le chemin de la classe, le nom du package est com.apple.computers, et le compilateur et la JVM sera dans <path-deux> \ classes \ com \ apple \ compters trouver les fichiers .class.

Un chemin de classe peut contenir plusieurs chemins. Multi-chemin doit être séparé par un délimiteur. Par défaut, le compilateur et la JVM trouver le répertoire courant. fichier JAR contenant la plate-forme Java, en fonction de la classe concernée, donc elles sont par défaut sur un répertoire dans le chemin de classe.


Réglage variable système CLASSPATH

Utilisez la commande suivante pour afficher la variable CLASSPATH actuelle:

  • plates-formes Windows (DOS de ligne de commande) -> C: \> set CLASSPATH
  • plates-formes UNIX (shell Bourne sous) ->% echo $ CLASSPATH
Retirez le contenu de la variable CLASSPATH actuelle:
  • plates-formes Windows (DOS de ligne de commande) -> C: \> set CLASSPATH =
  • plates-formes UNIX (shell Bourne sous) ->% unset CLASSPATH export CLASSPATH;

Réglage de la variable CLASSPATH:

  • plates-formes Windows (DOS de ligne de commande) -> set CLASSPATH = C: \ Users \ jack \ java \ classes
  • plates-formes UNIX (shell Bourne sous) ->% CLASSPATH = cours / home / jack / java / export CLASSPATH;