L’encapsulation consiste à définir la visibilité et l’accessibilité des propriétés et méthodes d’une classe pour mieux en maîtriser leur utilisation. Pour cela, il suffit de déclarer « private » les données à encapsuler et de définir des méthodes permettant de les lire et de les modifier : on appelle ces méthodes « getter » (pour la lecture) et « setter » (pour la modification).
Getter : méthode « public » permettant de définir la manière de lecture d’un attribut privé. Son type de retour est celui de la donnée retournée et son nom est souvent composé de « get » et du nom de l’attribut qu’elle retourne.
Setter : méthode « public » permettant de définir la manière de modification d’une donnée. Souvent, elle ne retourne rien (« void ») et prend un paramètre du même de type que la donnée à modifier. Son nom se compose de la mention « set » et du nom de l’attribut concerné.
class Voiture {
private _marque: string;
private _moteur:any;
public get marque(): string {
return this._marque;
}
public set marque(a_value: string) {
// ici par exemple on peux faire un traitement pour "accepter" ou non une valeur
if(a_value !== "RENAULT") {
this._marque = a_value;
}
}
// do something here with moteur but we dont want instance to access it !
}