Récemment, ma compréhension de l'encapsulation, qui est l'un des concepts de base de la POO, s'est estompée, je vais donc l'écrire pour ma propre critique avec une plage de révision très étroite.
Qu'est-ce que l'encapsulation? Si demandé par elle qui n'a jamais programmé Pour le dire simplement, ** Protégez ces fines particules à l'intérieur de l'extérieur comme une capsule de médicament. Vous pourriez dire ** d'abord, puis expliquer dans le code.
~~ Je comprends qu'il s'agit d'un contrôle d'accès à un objet de l'extérieur. (En fait, il peut y en avoir plus ...) ~~ J'ai reçu des conseils dans les commentaires et j'ai réalisé que ma compréhension était erronée.
** Le contrôle d'accès est un moyen d'encapsulation, il est donc différent de l'encapsulation. ** **
** Explication de l'encapsulation **
L'encapsulation est une «classe pour quoi» en combinant les données liées et le traitement qui nécessite ces données en une seule lors de la division du logiciel, et en excluant de la classe celles qui ne sont pas pertinentes et non pertinentes. Ceci est fait pour clarifier le but de la classe "Est-ce que c'est?", Et vise un état où il n'y a pas de données en double ou de traitement dans d'autres classes.
Person.java
public class Person {
private int age;
private String name;
//Mot de passe de la carte de crédit
private int creditCardPinNum;
public double weight = 69;
public Person(int age, String name, int creditCardPinNum) {
this.age = age;
this.name = name;
this.creditCardPinNum = creditCardPinNum;
}
// getter
public String getName() {
return name;
}
// setter
public void changeName(String name) {
this.name = name;
}
//Getter qui peut lire l'âge de l'extérieur
public int getAge() {
return age;
}
}
Remarque: c'est ma propre interprétation pour venger le concept.
Tout d'abord, les gens ne peuvent pas changer d'âge, non? Un enfant de 10 ans ne peut pas avoir «20 ans de demain», Par conséquent, l'âge de la classe Person est contrôlé par l'accès afin qu'elle ne puisse pas être modifiée (les variables membres sont rendues privées et la méthode setter est supprimée). J'ai un getter parce que je peux dire aux autres mon âge (** je ne mens pas ou ne mens pas cette fois **).
Bien qu'il s'agisse d'un nom, puisqu'une personne peut changer le nom autant de fois qu'elle le souhaite, une méthode de définition (changeName) est écrite dans la classe Person.
~~ Qu'est-ce que l'encapsulation? Contrôle d'accès externe (masquage d'informations) ~~ L'encapsulation est une «classe pour quoi» en combinant les données liées et le traitement qui nécessite ces données en une seule lors de la division du logiciel, et en excluant de la classe celles qui ne sont pas pertinentes et non pertinentes. Ceci est fait pour clarifier le but de la classe "Est-ce que c'est?", Et vise un état où il n'y a pas de données en double ou de traitement dans d'autres classes.