Article de reference

package Java

Un package Java organise les classes Java en espaces de noms , fournissant un espace de noms unique pour chaque type qu'il contient. Les classes d'un même package peuvent accéde...

Un package Java organise les classes Java en espaces de noms , fournissant un espace de noms unique pour chaque type qu'il contient. Les classes d'un même package peuvent accéder aux membres privés et protégés des autres classes.

En général, un package peut contenir les types suivants : classes, interfaces , énumérations, enregistrements et annotations . Un package permet au développeur de regrouper des classes (et des interfaces). Ces classes sont toutes liées d'une manière ou d'une autre ; elles peuvent par exemple être liées à une application spécifique ou effectuer un ensemble de tâches précis. Les programmeurs utilisent également les packages pour organiser les classes appartenant à la même catégorie ou offrant des fonctionnalités similaires.

mot-clé `package` . Ce mot-clé est généralement le premier du fichier source. Un fichier source ne peut contenir qu'une seule déclaration de package.

espaces de noms . La déclaration suivante en est un exemple.

nom complet de la classe. Par exemple,

Javadoc dans un fichier nommé précisément package-info.java . Ce fichier contient également les annotations à utiliser dans toutes les classes du package.

Le paquet sans nom

Si aucune déclaration de package n'est utilisée, les classes sont placées dans un package anonyme. Les classes d'un package anonyme ne peuvent pas être importées par des classes d'un autre package. Le tutoriel officiel de Java déconseille cette pratique.

En règle générale, un package sans nom est réservé aux petites applications, aux applications temporaires ou aux phases de développement initiales. Autrement, les classes et les interfaces doivent être placées dans des packages nommés.

Protection d'accès aux colis

Les membres et classes publics sont visibles partout, tandis que les membres privés ne le sont que dans la même classe. Les classes d'un même package peuvent accéder aux classes et membres déclarés avec l'accès par défaut ( privé au niveau du package ), ainsi qu'aux membres de classe déclarés avec le protectedmodificateur d'accès `private`. L'accès par défaut (privé au niveau du package) est appliqué lorsqu'une classe ou un membre n'a pas été déclaré comme public publicou protected`private` private. En revanche, les classes d'autres packages ne peuvent pas accéder aux classes et membres déclarés avec l'accès par défaut. Cependant, les membres de classe déclarés comme ` protectedprivate` sont accessibles depuis les classes du même package, ainsi que depuis les classes d'autres packages qui sont des sous-classes de la classe déclarante.

Création de fichiers JAR

Les fichiers JAR sont créés avec l'utilitaire en ligne de commande jar.

jar cf myPackage.jar *.class

Cette commande compresse tous les fichiers .class dans un fichier JAR nommé myPackage.jar . L'option « c » indique à la commande jar de créer une nouvelle archive. L'option « f » indique de créer un fichier. Le nom de ce fichier précède alors le contenu du fichier JAR.

Conventions d'appellation des paquets

Les paquets sont généralement définis selon une convention de nommage hiérarchique , certains niveaux étant séparés par des points ( prononcés « point »). Bien que les paquets situés plus bas dans la hiérarchie soient souvent appelés « sous-paquets » des paquets correspondants situés plus haut, il n'existe quasiment aucune relation sémantique entre eux. La spécification du langage Java établit des conventions de nommage pour éviter que deux paquets publiés ne portent le même nom. Ces conventions décrivent comment créer des noms de paquets uniques, de sorte que les paquets largement distribués disposent d'espaces de noms distincts. Cela permet une installation et un catalogage séparés, simples et automatiques des paquets..

En général, le nom d'un paquet commence par le nom de domaine de premier niveau de l'organisation, suivi du domaine de l'organisation, puis de ses sous-domaines, le tout dans l'ordre inverse. L'organisation peut ensuite choisir un nom spécifique pour son paquet. Les composants suivants du nom du paquet varient selon les conventions de nommage internes de l'organisation.

Par exemple, si une entreprise canadienne nommée MySoft crée un module pour la gestion des fractions, le fait de nommer ce module ca.mysoft.fractionspermet de le distinguer d'un module similaire créé par une autre entreprise. Si une entreprise allemande nommée MySoft crée également un module pour les fractions, mais le nomme `fractions` de.mysoft.fractions, les classes de ces deux modules sont définies dans un espace de noms unique et distinct. Il n'est pas obligatoire que le TLD corresponde au nom du pays de l'entreprise. Par exemple, de nombreux modules utilisent également d'autres TLD tels que `example.com` org, com`example.com`, etc. La bibliothèque standard Java place tous les symboles dans les espaces de noms ` java.*java.json` javax.*, `java.json` ou ` jdk.*java.json`, bien que certaines classes associées à d'autres technologies puissent résider dans d'autres espaces de noms . Certains projets, comme Project Lombok, peuvent ne pas utiliser de TLD du tout (tous les symboles se trouvent dans l'espace de noms ` java.json` lombok).

L'utilisation des TLD dans les noms de paquets est une convention principalement associée à Java, mais rarement employée dans d'autres langages. Dans des langages comme C++ et C#, il suffit de préfixer les noms de paquets/espaces de noms avec le nom de l'entreprise.

Les conventions complètes pour lever l'ambiguïté des noms de paquets et les règles de dénomination des paquets lorsque le nom de domaine Internet ne peut pas être utilisé directement comme nom de paquet sont décrites dans la section 7.7 de la spécification du langage Java.

Packages principaux dans Java SE 8

de structure de données de collectiond'E/S non bloquantes pour Javarequêtes DNS , ...Java Database Connectivity (JDBC) pour accéder aux bases de donnéesJava 9 (sorti le 21 septembre 2017), la prise en charge des « modules », une sorte de regroupement de packages, a été implémentée grâce aux efforts de développement du projet Jigsaw. Les « modules » étaient auparavant appelés « superpackages » et étaient initialement prévus pour Java 7.

Les modules décrivent leurs dépendances dans une déclaration placée dans un fichier nommé module-info.java à la racine de l'arborescence des fichiers sources du module. Depuis Java 9 , le JDK est capable de vérifier les dépendances des modules à la fois à la compilation et à l'exécution. Le JDK lui-même est modularisé pour Java 9. [ exemple, la majeure partie de la bibliothèque standard Java est exportée par le module java.base.

À titre d'exemple, la déclaration de module suivante indique que le module com.foo.bar dépend d'un autre module com.foo.baz et exporte les packages suivants : com.foo.bar.alpha et com.foo.bar.beta :

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index