Menu
Coddy logo textTech

Aperçu des niveaux d'accès

Fait partie de la section Programmation Orientée Objet du Journey Java de Coddy. Leçon 10 sur 87.

Les modificateurs d'accès contrôlent l'accès aux champs et aux méthodes. Java dispose de quatre niveaux de contrôle d'accès.

ModificateurMême classeMême packageSous-classePartout
privateOuiNonNonNon
default (aucun mot-clé)OuiOuiNonNon
protectedOuiOuiOuiNon
publicOuiOuiOuiOui
public class BankAccount {
    private double balance;      // Uniquement cette classe
    String accountType;          // Par défaut : même package uniquement
    protected String owner;      // Même package + sous-classes
    public String bankName;      // Accessible partout
}

private est le plus restrictif - utilisez-le pour les données internes qui ne devraient jamais être accédées directement. public est le plus ouvert - utilisez-le pour les méthodes que d'autres classes doivent appeler.

Lorsque vous ne spécifiez aucun modificateur, Java utilise l’accès par défaut (également appelé accès au niveau du package). Cela autorise l’accès uniquement au sein du même package.

class Helper {           // Classe d'accès par défaut
    void assist() { }    // Méthode d'accès par défaut
}

Choisissez le niveau d'accès le plus restrictif qui permet toujours à votre code de fonctionner. Cela protège vos données et rend votre code plus facile à maintenir.

challenge icon

Défi

Facile

Construisons un système d'enregistrement Student qui montre comment les modificateurs d'accès contrôlent la visibilité entre différents fichiers.

Vous allez créer deux fichiers pour organiser votre code :

  • Student.java : définissez une classe Student avec des champs utilisant différents niveaux d'accès :
    • champ private : studentId (String) - accessible uniquement à l'intérieur de la classe Student
    • champ par défaut (aucun modificateur) : grade (int) - accessible au sein du même package
    • champ protected : name (String) - accessible dans le même package et dans les sous-classes
    • champ public : school (String) - accessible partout
    Incluez un constructeur qui définit les quatre champs, ainsi qu'une méthode public appelée getInfo() qui renvoie une chaîne au format suivant : "[studentId] name - Grade grade at school"
  • Main.java : créez un objet Student et montrez quels champs peuvent être consultés directement depuis l'extérieur de la classe. Affichez directement le champ school, puis affichez le résultat de getInfo() pour montrer toutes les informations de l'étudiant.

Vous recevrez quatre entrées : studentId, name, grade et school (dans cet ordre).

Votre sortie doit comporter deux lignes : le nom de l'école consulté directement, suivi des informations complètes de l'étudiant provenant de la méthode getInfo().

Essayez vous-même

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Lire les entrées
        String studentId = scanner.nextLine();
        String name = scanner.nextLine();
        int grade = Integer.parseInt(scanner.nextLine());
        String school = scanner.nextLine();
        
        // TODO: Créer un objet Student avec les valeurs d'entrée
        
        
        // TODO: Afficher le champ school directement (accessible car il est public)
        
        
        // TODO: Afficher le résultat de getInfo() pour montrer toutes les informations de l'étudiant
        
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur Java en ligne