Quelle est la différence entre public, protected, package-private et private en Java ?

Quelle est la différence entre public, protected, package-private et private en Java ?

Différences entre public, protected, package-private et private en Java

En Java, il existe quatre types de modificateurs d’accès : public, protected, package-private (par défaut) et private. Ces modificateurs sont utilisés pour définir le niveau d’accessibilité d’une classe, d’une interface, d’une variable, d’une méthode, d’un constructeur ou d’un membre de données.



1. Public

Le modificateur d’accès public est le plus permissif et permet un accès complet à l’élément qu’il modifie. Une classe, une interface, une méthode ou un membre de données déclaré comme public est accessible à partir de n’importe où dans le programme, que ce soit à l’intérieur de la classe ou du package actuel, ou à partir d’un autre package.

Exemple :

public class MyClass {
public int publicVariable;

public void publicMethod() {
// Code ici
}
}


2. Protected

Le modificateur d’accès protected permet un accès à l’élément qu’il modifie dans la classe elle-même, dans les classes dérivées (sous-classes) et dans le même package. Cependant, il n’est pas accessible à partir d’autres packages.

Exemple :

public class MyClass {
protected int protectedVariable;

protected void protectedMethod() {
// Code ici
}
}


3. Package-Private (Par défaut)

En Java, si aucun modificateur d’accès n’est spécifié, l’élément a un accès package-private (également appelé friendly). Cela signifie que l’élément est accessible uniquement à partir du même package, mais pas à partir d’autres packages.

Exemple :

public class MyClass {
int packageVariable;

void packageMethod() {
// Code ici
}
}


4. Private

Le modificateur d’accès private limite l’accès à l’élément à la classe dans laquelle il est déclaré. Cela signifie que l’élément n’est pas accessible à partir d’autres classes, qu’elles soient dans le même package ou non.

Exemple :

public class MyClass {
private int privateVariable;

private void privateMethod() {
// Code ici
}
}

Dans l’ordre d’accès, du plus permissif au plus restrictif, nous avons : public, protected, package-private et private. Il est important de choisir le modificateur d’accès approprié en fonction des besoins de sécurité et de confidentialité de votre programme.

L’avis de notre rédaction

Les informations fournies par les différentes sources sont cohérentes et détaillées, offrant une bonne compréhension de la différence entre les modificateurs d’accès en Java. Cependant, certaines sources ne mentionnent pas clairement que la visibilité package-private est le niveau d’accès par défaut lorsqu’aucun modificateur n’est spécifié.

Pour combler cette lacune, voici une explication claire : en Java, si vous ne spécifiez pas de modificateur d’accès, la visibilité de l’élément est limitée au package dans lequel il est déclaré. Cela signifie que l’élément est accessible uniquement à partir des autres classes du même package, mais pas à partir d’autres packages.

À propos de l’auteur

Je suis un entrepreneur du web. Webmaster et éditeur des sites web, je me suis spécialisé sur les techniques de recherches d'informations sur internet avec pour but de rendre l'info beaucoup plus accessible aux internautes. Bien que tous les efforts aient été faits pour assurer l'exactitude des informations figurant sur ce site, nous ne pouvons offrir aucune garantie ou être tenus pour responsable des éventuelles erreurs commises. Si vous constatez une erreur sur ce site, nous vous serions reconnaissants de nous la signaler en utilisant le contact: jmandii{}yahoo.fr (remplacer {} par @) et nous nous efforcerons de la corriger dans les meilleurs délais. Merci