Maison  >  Article  >  Java  >  La relation entre les modificateurs d'accès aux fonctions Java et l'accès aux champs

La relation entre les modificateurs d'accès aux fonctions Java et l'accès aux champs

王林
王林original
2024-04-25 18:09:021011parcourir

Le modificateur d'accès d'une fonction Java affecte son accès aux champs d'une classe : les fonctions publiques peuvent accéder à tous les champs, quelles que soient les autorisations d'accès aux champs. Les fonctions protégées ne peuvent accéder qu'aux champs avec accès protégé ou public. La fonction par défaut ne peut accéder qu'aux champs avec un accès par défaut ou public. Les fonctions privées ne peuvent accéder qu'aux champs avec accès privé.

Java 函数的访问权限修饰符之与字段访问的联系

La connexion entre les modificateurs d'accès aux fonctions Java et l'accès aux champs

Les modificateurs d'accès des fonctions Java peuvent restreindre leur accès aux champs d'une classe. Comprendre cette connexion est essentiel pour maintenir la sécurité et la maintenabilité de votre code.

Modificateurs d'autorisation d'accès

Il existe quatre modificateurs d'autorisation d'accès aux fonctions en Java :

  • public : Autoriser toutes les classes à accéder aux fonctions.
  • protected : Autoriser les classes et sous-classes appartenant au même package à accéder aux fonctions.
  • default (pas de modificateur) : Seules les classes appartenant au même package sont autorisées à accéder à la fonction.
  • private : autorise uniquement la classe elle-même à accéder aux fonctions.

Liens d'accès aux champs

Le modificateur d'accès d'une fonction affecte son accès aux champs de la classe :

  • Si une fonction est publique, elle peut accéder à tous les champs, quels que soient les droits d'accès du champ.
  • Si la fonction est protégée, alors seuls les champs avec un accès protégé ou public sont accessibles.
  • Si la fonction est default, seuls les champs avec un accès default ou public seront accessibles.
  • Si la fonction est privée, seuls les champs avec accès privé sont accessibles.

Cas pratique

Considérons la classe suivante :

public class MyClass {
    private int privateField;
    protected int protectedField;
    int defaultField;
    public int publicField;

    public void publicMethod() {
        // 可以访问所有字段
        System.out.println(privateField);
        System.out.println(protectedField);
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    protected void protectedMethod() {
        // 可以访问 protected 和 public 字段
        System.out.println(protectedField);
        System.out.println(publicField);
    }

    void defaultMethod() {
        // 可以访问 default 和 public 字段
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    private void privateMethod() {
        // 只能访问 private 字段
        System.out.println(privateField);
    }
}

Dans ce cas :

  • publicMethod() peut accéder à tous les champs car il s'agit d'une méthode publique. publicMethod() 可以访问所有字段,因为它是公共方法。
  • protectedMethod() 可以访问 protectedFieldpublicField,因为它是受保护方法。
  • defaultMethod() 可以访问 defaultFieldpublicField,因为它是默认为包内可见的方法。
  • privateMethod() 只能访问 privateField
  • protectedMethod() a accès à protectedField et publicField car c'est une méthode protégée.
🎜defaultMethod() a accès à defaultField et publicField car c'est une méthode visible dans le package par défaut. 🎜🎜privateMethod() ne peut accéder qu'à privateField car il s'agit d'une méthode privée. 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn