[JAVA] Encapsulation

Objectif de la capsule

En n'exposant pas le champ, nous nous excusons pour la valeur du champ qui ne doit pas être modifiée afin qu'elle ne puisse pas être modifiée.

À propos du contrôle d'accès

Niveau de contrôle d'accès

Nom Comment écrire dans le programme Portée de l'accès
private private Seulement dans la même classe que moi
package private Ne rien écrire (par défaut) Seulement le même paquet que moi
protected protected Classes enfants qui appartiennent au même package qu'eux ou héritent d'elles-mêmes
public public Toutes les classes

Contrôle d'accès aux champs et méthodes

** (En pensant) ** Fondamentalement, «privé» est souvent utilisé pour les champs. Chaque fois qu'une méthode est créée, le champ d'application est pris en compte.

Définition des champs via des méthodes

getter

** (Comment utiliser) **

public Un type qui renvoie une valeur get field name(){
  return this.Nom de domaine;//
}

(code)

private String name;

public String getName(){
   return this.name;//Renvoie la valeur du nom pour cette classe
}

** (Méthode d'appel) **

System.out.println(getName());

setter

** (Comment utiliser) **

nom du champ public void set (type de données de l'argument nom de la variable à mettre en argument){
  this.Nom du champ = nom de la variable pour mettre l'argument
}

(code)

private String name;

public void setName(String name){
   this.name = name
}

** (Méthode d'appel) **

Nom de l'instance.setName("Yoshihiko");

Avantages de l'utilisation de getter / setter

** Le champ Lecture seule Écriture seule peut être réalisé. ** ** → écrire uniquement pour l'ensemble uniquement, lecture seule pour obtenir uniquement

** Noms de champs faciles à changer ** → Lorsque vous renommez un champ, si une autre classe utilise directement le nom du champ, il sera nécessaire de modifier l'autre classe, mais si get / set est utilisé, elle sera dans votre propre classe. Tout ce que vous avez à faire est de modifier le nom de la classe dans get / set.

** Vous pouvez vérifier l'accès au champ ** → (Exemple) Si une valeur de 0 ou moins est assignée au champ mp, un throw new IllegalArgumentException générera de force une erreur et arrêtera le système.

	public void setMp(int mp) {
		if (mp < 0) {
			throw new IllegalArgumentException("Veuillez définir mp sur 0 ou plus");
		}
		mp = this.mp;
	}

Contrôle d'accès pour les classes

Niveau de contrôle d'accès

Nom Comment écrire dans le programme Portée de l'accès
public public tout
package private Ne rien écrire (par défaut) Seulement le même paquet que moi

Caractéristiques des classes non publiques

-Le nom de la classe peut être différent du nom du fichier source -Plusieurs classes peuvent être déclarées dans un fichier source

Recommended Posts

Encapsulation
java (encapsulation)
Revue d'encapsulation
À propos de l'encapsulation
[Java] Encapsulation
Encapsulation, polymorphisme
Qu'est-ce que l'encapsulation Java?
Glossaire: Accessor / Accessor Method, Encapsulation
À propos de l'encapsulation et de l'héritage
À propos de l'encapsulation Java Private Public