Méthode mutatrice en java

Méthode mutatrice en java
Dans le dictionnaire anglais, muter des moyens d'avoir une nouvelle forme. Et donc, un mutateur, bien que non trouvé dans le dictionnaire anglais, signifie quelque chose qui provoque un changement en une nouvelle forme. Une variable privée est un champ ou une propriété d'une classe en Java. Il n'y a pas de méthode prédéfinie appelée mutator dans Java. Au lieu de cela, un mutateur est une méthode dans une classe, et cette méthode est censée modifier la valeur d'une variable privée de la classe. Par convention, le programmeur doit commencer le nom de la méthode par «set». Ainsi, la méthode peut être quelque chose comme setage (), setprice (), setName (), etc.

Différence entre la variable privée et publique

Une variable privée ne peut être vue que par les membres (propriétés et méthodes) à l'intérieur de la définition de la classe. Il ne peut pas être vu par code en dehors de la définition de la classe. D'un autre côté, une variable publique peut être vue par code en dehors de la définition de la classe. Le code en dehors de la classe peut simplement modifier la variable publique d'une classe en attribuant une nouvelle valeur en utilisant le nom de classe si la méthode est statique ou en utilisant le nom de l'objet si la méthode n'est pas statique. Avec une variable publique, le sentiment de mutation n'est pas vraiment là. Mais lorsqu'une classe change sa propre valeur, qui ne peut pas être modifiée de l'extérieur, qui s'appelle la transformation - qui a un meilleur sens de la mutation.

Illustration du mutateur

Toutes les classes n'ont pas besoin d'un mutateur. Cependant, lorsqu'un mutateur est nécessaire pour une variable privée (propriété), la méthode mutatrice qui est membre de la classe devrait commencer par «set». Le programmeur définit ensuite la méthode du mutateur.

Tout objet dans un magasin peut être défini par une classe. Une bonne tasse dans un magasin par exemple, peut être définie par une classe. Au minimum, la classe aurait une propriété qui est le prix de la tasse, une méthode de mutator et une méthode d'accessoire. La méthode accessoire est une méthode pour lire la valeur de la propriété. Par convention, la méthode accessoire doit commencer par «Get». Dans ce cas, ce serait getPrice (). Laissez la propriété avec le prix du nom être privé. Si le prix est public, il n'y aura pas besoin de mutateur et d'accessoire, car la valeur pourrait être définie ou obtenue publiquement.

La définition de classe suivante concerne une tasse (une propriété supplémentaire (champ) pour la devise est ajoutée):

Casse de classe
Double prix privé = 2.0;
CARRANCE PRIVÉ = '$';
public void setPrice (double dbl)
Prix ​​= DBL;

public double getprice ()
prix de retour;

Le mutateur setPrice () est public afin qu'il puisse être accessible par code en dehors de la classe. Rendre le mutateur public ne signifie pas rendre public la propriété correspondante. La propriété correspondante doit être privée. Le mutateur ici a l'argument DBL qui est le nouveau prix. À mesure que les conditions du marché changent, le prix de la boutique change également. Si le prix était public, il ne serait pas nécessaire que le mutateur setprice () est possible que le code en dehors de la classe change le prix. Étant donné que SetPrice est membre de la classe, il peut voir la valeur du prix de la propriété privée. Cependant, le code en dehors de la classe ne peut pas voir la propriété. C'est par conception.

L'accès GetPrice () est public afin qu'il puisse être accessible par code en dehors de la classe. Il n'a aucun argument. Si le prix était public, il n'y aurait pas besoin de l'accessoire getPrice () car il serait possible que le code en dehors de la classe lise le prix. Étant donné que GetPrice est membre de la classe, il peut voir la valeur du prix de la propriété privée. Cependant, le code en dehors de la classe ne peut pas voir la propriété. C'est par conception.

Un mutateur setCurrency () et un accessor getCurrency () peuvent également être écrits pour la monnaie variable privée.

La classe principale et la méthode principale suivantes accède au prix variable privé, mute la variable, puis accéder à nouveau à la variable; Tout cela après avoir instancié la classe:

classe publique TheClass
public static void main (String [] args)
Cup Cup1 = nouveau tasse ();
double premierprice = CUP1.getPrice ();
Système.dehors.print (FirstPrice); Système.dehors.imprimer(", ");
CUP1.setPrice (3.0);
Double-secondprice = CUP1.getPrice ();
Système.dehors.imprimer (secondprice);
Système.dehors.println ();

La sortie est:

2.0, 3.0

Le premier segment de code de la méthode principale instancie l'objet Cup (CUP1) et accède au prix de la propriété privée via Accessor Getprice () et Cup1. Il imprime ensuite ce premier prix avec une virgule et un espace.

Le deuxième segment de code est un segment de code à une ligne. Il mute le prix de la propriété privée via le mutateur setPrice () et Cup1. Le troisième segment de code lit et imprime le nouveau prix.

Validation

L'utilisateur du programme est censé fixer le nouveau prix en double. Mais que se passe-t-il s'il saisit un autre type de données? Le nouveau prix doit être validé s'il s'agit vraiment d'un double. Le code de ligne de ce cas devrait apparaître comme ceci:

booléen bl = instance dblof double;

L'opérateur, instance de renvoie True, si son opérande gauche est une instance de l'opérande droit; Faux autrement.

Avec validation, la définition de la méthode du mutator doit être:

public void setPrice (double dbl)
if (dbl instanceof double)
Prix ​​= DBL;
autre
Système.dehors.println ("Le nouveau prix ne pourrait pas être fixé!");

Autrement dit, si l'entrée DBL est de type double, le prix est modifié. Si ce n'est pas le cas, un message d'erreur est émis et le programme continue. Notez que «D» pour le double dans ce segment de code est «D» et non «D».

Un code similaire pour vérifier si la devise est un caractère peut être écrit comme suit:

Public vide setCurrency (caractère ch)
if (chrestof le caractère)
devise = '€';
autre
Système.dehors.println ("La nouvelle devise n'est pas un personnage!");

Autrement dit, si l'entrée CH est de caractère de type, la devise est passée de $ à «€». Si ce n'est pas le cas, un message d'erreur est émis et le programme continue. Notez que «C» pour le caractère dans ce segment de code est «C» et non «C».

Conclusion

Il n'y a pas de méthode prédéfinie en tant que mutateur en java. Un mutateur est codé par le programmeur. Un mutateur n'est qu'une méthode codée (publique) qui modifie la valeur privée d'un champ (propriété) d'une classe. D'un autre côté, un accessoire n'est qu'une méthode codée (publique) qui lit la valeur privée d'un champ (propriété) d'une classe.

Merci d'avoir lu notre article. Laissez un commentaire sur vos pensées et lisez d'autres articles sur Linuxhint.com qui correspond le mieux aux idées que vous recherchez.