Je code sur le traitement depuis quelques mois maintenant et j'essaie d'utiliser des classes Java. Je suis un débutant sur les classes Java et je crois que les attributs privés d'une classe ne peuvent pas être modifiés en dehors de cette classe. Cependant, j'ai changé un attribut privé d'un objet dans le fichier setup()
de Processing. Je ne comprends pas pourquoi je suis capable de faire ça. Quelqu'un peut-il m'aider?Pourquoi est-ce que je peux changer un attribut privé de sa classe?
Une partie du code de la classe:
public class Character {
private String name;
...
public Character(String pName, ...) {
name = pName;
...
public void dname() {
println(this.name);
}
}
Le code setup()
:
void setup() {
player = new Character("John Doe", ...);
player.dname(); //I get "John Doe".
player.name = "tara";
player.dname(); //I get "tara", without any error.
}
Merci beaucoup!
** Où ** est le code d'installation? c'est la clé. Est-ce dans le même fichier que la classe Character? –
@HovercraftFullOfEels Non, l'installation est dans le fichier principal tandis que la classe Character est dans un fichier où toutes les classes sont définies. Comment cela affecte-t-il le mécanisme public/privé? – hiberfil
@hiberfil Je n'ai jamais utilisé le traitement, mais en me référant à [cette documentation] (https://processing.org/reference/private.html): "Ce mot-clé est utilisé ** pour interdire aux autres classes ** l'accès aux champs et méthodes au sein d'une classe "(emphase mienne). Cela pourrait être formulé de manière lâche, mais, comme écrit, si votre méthode 'setup()' n'est pas dans une classe, cela implique que 'private' est ignoré. –