[Java] Les restrictions d'accès aux champs privés ne sont pas par objet mais par classe

Parlez des spécifications Java.

La documentation Java dit:

The private modifier specifies that the member can only be accessed in its own class.

https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

Autrement dit, il est accessible à partir de différents objets appartenant à la même classe. (La partie qui est facile à mal comprendre)

Exemple 1

En recevant un objet de la même classe comme argument, vous pouvez directement actionner le champ privé. (Getter, setter non requis)

public class Foo {
    private int num;

    public void setNumToAnotherFoo(Foo foo, int num) {
        foo.num = num;
    }
}

Exemple 2

Lorsqu'un champ a des objets de la même classe, le champ privé peut être manipulé directement.


public class Bar {
    private Bar barField;
    private int num;

    public void setBarFieldNum(int num) {
        barField.num = num;
    }
}

Les références

Recommended Posts

[Java] Les restrictions d'accès aux champs privés ne sont pas par objet mais par classe
[Java] Classe d'objets
Champ de type de classe Java
[Java] Wrapper qui exécute la méthode privée d'un objet depuis l'extérieur de la classe
Pourquoi les variables de classe sont-elles nécessaires? [Java]
java (utilisez le type de classe pour le champ)