Paquets Java et comment les importer?

Dans cet article, vous découvrirez les packages et comment les utiliser pour créer du code modulaire en Java.

Package Java

Un package est simplement un conteneur qui regroupe des types associés (classes Java, interfaces, énumérations et annotations). Par exemple, dans le noyau Java, l' ResultSetinterface appartient au java.sqlpackage. Le package contient tous les types associés nécessaires à la requête SQL et à la connexion à la base de données.

Si vous souhaitez utiliser l' ResultSetinterface dans votre code, importez simplement le package java.sql (l'importation de packages sera abordée plus loin dans l'article).

Comme mentionné précédemment, les packages ne sont que des conteneurs pour les classes Java, les interfaces, etc. Ces packages vous aident à réserver l'espace de noms de classe et à créer un code maintenable.

Par exemple, vous pouvez trouver deux Dateclasses en Java. Cependant, la règle d'or dans la programmation Java est qu'un seul nom de classe unique est autorisé dans un projet Java.

Comment ont-ils réussi à inclure deux classes avec le même nom Date dans JDK?

Cela a été possible car ces deux Dateclasses appartiennent à deux packages différents:

  • java.util.Date - c'est une classe Date normale qui peut être utilisée n'importe où.
  • java.sql.Date - il s'agit d'une date SQL utilisée pour la requête SQL et autres.

Selon que le package est défini par l'utilisateur ou non, les packages sont divisés en deux catégories:

Package intégré

Les packages intégrés sont des packages Java existants qui accompagnent le JDK. Par exemple, java.lang, java.util, java.io, etc. Par exemple:

 import java.util.ArrayList; class ArrayListUtilization ( public static void main(String() args) ( ArrayList myList = new ArrayList(3); myList.add(3); myList.add(2); myList.add(1); System.out.println(myList); ) ) 

Sortie :

 maListe = (3, 2, 1) 

La ArrayListclasse appartient à java.util package. Pour l'utiliser, nous devons d'abord importer le package en utilisant l' importinstruction.

 import java.util.ArrayList; 

Package défini par l'utilisateur

Java vous permet également de créer des packages selon vos besoins. Ces packages sont appelés packages définis par l'utilisateur.

Comment définir un package Java?

Pour définir un package en Java, vous utilisez le mot-clé package.

 package packageName; 

Java utilise les répertoires du système de fichiers pour stocker les packages. Créons un fichier Java dans un autre répertoire.

Par exemple:

 └── com └── test └── Test.java 

Maintenant, éditez le fichier Test.java , et au début du fichier, écrivez l'instruction package comme:

 package com.test; 

Ici, toute classe déclarée dans le répertoire de test appartient au package com.test .

Voici le code:

package com.test; test de classe (public static void main (String () args) (System.out.println ("Hello World!");))

Sortie :

 Bonjour le monde! 

Ici, la classe Test appartient désormais au package com.test .

Convention de dénomination des packages

Le nom du package doit être unique (comme un nom de domaine). Par conséquent, il existe une convention pour créer un package en tant que nom de domaine, mais dans l'ordre inverse. Par exemple, com.company.name

Ici, chaque niveau du package est un répertoire dans votre système de fichiers. Comme ça:

 └── com └── société └── nom 

Et, il n'y a aucune limitation sur le nombre de sous-répertoires (hiérarchie de packages) que vous pouvez créer.

Comment créer un package dans Intellij IDEA?

Dans IntelliJ IDEA, voici comment créer un package:

  1. Cliquez avec le bouton droit sur le dossier source.
  2. Accédez à nouveau , puis package .
  3. Une boîte de dialogue apparaîtra dans laquelle vous pourrez saisir le nom du package.

Une fois le package créé, une structure de dossiers similaire sera également créée sur votre système de fichiers. Maintenant, vous pouvez créer des classes, des interfaces, etc. à l'intérieur du package.

Comment importer des packages en Java?

Java a une importinstruction qui vous permet d'importer un package entier (comme dans les exemples précédents), ou d'utiliser uniquement certaines classes et interfaces définies dans le package.

The general form of import statement is:

 import package.name.ClassName; // To import a certain class only import package.name.* // To import the whole package 

For example,

 import java.util.Date; // imports only Date class import java.io.*; // imports everything inside java.io package 

The import statement is optional in Java.

If you want to use class/interface from a certain package, you can also use its fully qualified name, which includes its full package hierarchy.

Here is an example to import a package using the import statement.

 import java.util.Date; class MyClass implements Date ( // body ) 

The same task can be done using the fully qualified name as follows:

 class MyClass implements java.util.Date ( //body ) 

Example: Package and importing package

Suppose, you have defined a package com.programiz that contains a class Helper.

 package com.programiz; public class Helper ( public static String getFormattedDollar (double value)( return String.format("$%.2f", value); ) ) 

Now, you can import Helper class from com.programiz package to your implementation class. Once you import it, the class can be referred directly by its name. Here's how:

 import com.programiz.Helper; class UseHelper ( public static void main(String() args) ( double value = 99.5; String formattedValue = Helper.getFormattedDollar(value); System.out.println("formattedValue = " + formattedValue); ) ) 

Output:

 formattedValue = $99.50 

Here,

  1. the Helper class is defined in com.programiz package.
  2. la classe Helper est importée dans un fichier différent. Le fichier contient la classe UseHelper.
  3. La getFormattedDollar()méthode de la classe Helper est appelée depuis l'intérieur de la classe UseHelper.
Package d'importation Java

En Java, l' importinstruction est écrite directement après l'instruction du package (si elle existe) et avant la définition de classe.

Par exemple,

package package.name; import package.ClassName; // importer uniquement une classe de classe MyClass (// corps)

Articles intéressants...