Ce qui suit est du pseudo code, je l'ai essayé en Java et PHP et les deux ont fonctionné:
class Test {
private int a = 5;
public static function do_test(){
var t = new Test();
t.a = 1;
print t.a // 1
}
}
Test::do_test();
Pourquoi pouvez-vous faire cela dans le paradigme OOP et à quoi cela sert-il?
this
, donc les seuls objets de leur propre classe auxquels ils peuvent accéder sont ceux qu'ils créent eux-mêmes (ou qui sont passés en tant que paramètre). Donc, si vous considérez cela comme une violation de l'encapsulation ou une faille de sécurité, ce n'est pas comme si c'était un très gros, et cela ne vaut peut-être pas la peine d'être branché.
equals
devoir vérifier les champs privés d'une autre instance. (Publication sous forme de commentaire, car cela est court, et rien sur la POO de cette approche)