Retour au cours

Organisation du code avec les packages et les instructions import

Maîtrise de Java : De Zéro à Développeur Professionnel (Un parcours en 50 leçons)

Leçon 28 : Organisation du code avec les packages et les instructions import

Les packages sont le moyen utilisé par Java pour regrouper les classes et les interfaces liées entre elles. Ils empêchent les conflits de nommage et aident à contrôler l'accès.

1. Définition d'un package

  • La déclaration du package doit être la toute première ligne de votre fichier source Java (si elle est présente).
  • Par convention, les noms de package sont tous en minuscules et utilisent des noms de domaine inversés (ex: com.mycompany.app).

java // Fichier : com/mycompany/models/Car.java package com.mycompany.models;

public class Car { /* ... */ }

2. Package par défaut

Si vous ne spécifiez pas de package, la classe appartient au package par défaut. Ceci est déconseillé pour les applications du monde réel.

3. Importation de classes

Lorsque vous souhaitez utiliser une classe définie dans un package différent, vous devez utiliser l'instruction import.

A. Importation d'une classe spécifique

java import java.util.ArrayList;

// Nous pouvons maintenant utiliser ArrayList directement ArrayList list = new ArrayList();

B. Importation de toutes les classes d'un package

L'utilisation de l'astérisque (*) importe toutes les classes de ce package, mais pas les sous-packages.

java import java.util.*; // Importe ArrayList, HashMap, Scanner, etc.

Scanner scanner = new Scanner(System.in);

Note sur java.lang : Le package java.lang (qui contient des classes comme String, System et Math) est automatiquement importé dans chaque programme Java.

4. Nom de classe complet (FQC)

Si deux packages contiennent des classes portant le même nom, ou si vous choisissez de ne pas importer, vous devez utiliser le nom de classe complet (Fully Qualified Class Name) :

java // Utilisation de deux classes Date différentes sans conflits d'import java.util.Date utilDate = new java.util.Date(); java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());