Java Tutorial

Modificateurs Java


Modificateurs

A présent, vous êtes assez familier avec le public mot-clé qui apparaît dans presque tous nos exemples :

Le public mot-clé est un modificateur d’accèsce qui signifie qu’il est utilisé pour définir le niveau d’accès aux classes, attributs, méthodes et constructeurs.

Nous divisons les modificateurs en deux groupes :

  • Modificateurs d’accès – contrôle le niveau d’accès
  • Modificateurs sans accès – ne contrôle pas le niveau d’accès, mais fournit d’autres fonctionnalités

Modificateurs d’accès

Pour Des classesvous pouvez utiliser soit public ou défaut:

Modificateur Description Essayez-le
public La classe est accessible par n’importe quelle autre classe Essayez-le »
défaut La classe n’est accessible que par les classes du même package. Ceci est utilisé lorsque vous ne spécifiez pas de modificateur. Vous en apprendrez plus sur les packages dans le chapitre Packages Essayez-le »

Pour attributs, méthodes et constructeursvous pouvez utiliser l’une des options suivantes :

Modificateur Description Essayez-le
public Le code est accessible pour toutes les classes Essayez-le »
private Le code n’est accessible qu’au sein de la classe déclarée Essayez-le »
défaut Le code n’est accessible que dans le même package. Ceci est utilisé lorsque vous ne spécifiez pas de modificateur. Vous en apprendrez plus sur les packages dans le chapitre Packages Essayez-le »
protected Le code est accessible dans le même package et sous-classes. Vous en apprendrez plus sur les sous-classes et les super-classes dans le chapitre Héritage Essayez-le »

Modificateurs sans accès

Pour Des classesvous pouvez utiliser soit final ou abstract:

Modificateur Description Essayez-le
final La classe ne peut pas être héritée par d’autres classes (Vous en apprendrez plus sur l’héritage dans le chapitre Héritage) Essayez-le »
abstract La classe ne peut pas être utilisée pour créer des objets (Pour accéder à une classe abstraite, elle doit être héritée d’une autre classe. Vous en apprendrez plus sur l’héritage et l’abstraction dans les chapitres Héritage et Abstraction) Essayez-le »

Pour attributs et méthodesvous pouvez utiliser l’une des options suivantes :

Modificateur Description
final Les attributs et les méthodes ne peuvent pas être remplacés/modifiés
static Les attributs et les méthodes appartiennent à la classe, plutôt qu’à un objet
abstract Ne peut être utilisé que dans une classe abstraite et ne peut être utilisé que sur des méthodes. La méthode n’a pas de corps, par exemple
abstract void run();. Le corps est fourni par la sous-classe (héritée de). Vous en apprendrez plus sur l’héritage et l’abstraction dans les chapitres Héritage et Abstraction
transient Les attributs et les méthodes sont ignorés lors de la sérialisation de l’objet qui les contient
synchronized Les méthodes ne sont accessibles que par un thread à la fois
volatile La valeur d’un attribut n’est pas mise en cache localement dans le thread et est toujours lue à partir de la « mémoire principale »


Final

Si vous ne souhaitez pas pouvoir remplacer les valeurs d’attribut existantes, déclarez les attributs comme final:

Exemple

public class Main {
  final int x = 10;
  final double PI = 3.14;

  public static void main(String[] args) {
    Main myObj = new Main();
    myObj.x = 50; // will generate an error: cannot assign a value to a final variable
    myObj.PI = 25; // will generate an error: cannot assign a value to a final variable
    System.out.println(myObj.x);
  }
}

Essayez-le vous-même »


Statique

UN static signifie qu’il est possible d’y accéder sans créer d’objet de la classe, contrairement à public:

Exemple

Un exemple pour montrer les différences entre static et public méthodes :

public class Main {
  // Static method
  static void myStaticMethod() {
    System.out.println("Static methods can be called without creating objects");
  }

  // Public method
  public void myPublicMethod() {
    System.out.println("Public methods must be called by creating objects");
  }

  // Main method
  public static void main(String[ ] args) {
    myStaticMethod(); // Call the static method
    // myPublicMethod(); This would output an error

    Main myObj = new Main(); // Create an object of Main
    myObj.myPublicMethod(); // Call the public method
  }
}

Essayez-le vous-même »


Abstrait

Un abstract méthode appartient à un abstract classe, et il n’a pas de corps. Le corps est fourni par la sous-classe :

Exemple

// Code from filename: Main.java
// abstract class
abstract class Main {   public String fname = "John";   public int age = 24;   public abstract void study(); // abstract method } // Subclass (inherit from Main) class Student extends Main {   public int graduationYear = 2018;   public void study() { // the body of the abstract method is provided here     System.out.println("Studying all day long");   } } // End code from filename: Main.java // Code from filename: Second.java class Second {   public static void main(String[] args) {     // create an object of the Student class (which inherits attributes and methods from Main)     Student myObj = new Student();     System.out.println("Name: " + myObj.fname);     System.out.println("Age: " + myObj.age);     System.out.println("Graduation Year: " + myObj.graduationYear);     myObj.study(); // call abstract method
  } }

Essayez-le vous-même »

#Modificateurs #Java

Articles similaires

Voir Aussi
Fermer
Bouton retour en haut de la page