RECHERCHE DE SITE

L'encapsulation est quoi? Encapsulation dans la programmation

L'encapsulation est l'un des trois principauxcaractéristiques de la programmation orientée objet (POO). Les deux autres sont le polymorphisme et l'héritage. Ensemble, ils forment la base de l'OLP, qui détermine l'ensemble des possibilités d'écriture de programmes dans différentes langues, en utilisant ces trois principes. Les langages orientés objet, à leur tour, sont nécessaires pour les suivre clairement.

l'encapsulation est

Bases de POO

La programmation orientée objet repose sur trois piliers de son univers:

  • Le polymorphisme, répondant à la question de savoir comment un certain langage de programmation traite les objets qui ont une relation les uns avec les autres, d'une manière similaire.
  • Héritage, qui donne une réponse, comment la stimulation de l'utilisation du code se produit à plusieurs reprises.
  • L'encapsulation, qui est la réponse à la question de la dissimulation de l'implémentation, et donc de l'intégrité des données, est préservée.

Terminologie

L'encapsulation (programmation) estutilisation de modificateurs d'accès pour cacher des parties du code de programme à l'utilisateur final. En dessous, à son tour, signifie le développeur ou l'objet héritant.

concepts d'encapsulation

L'essence du concept d '"encapsulation"

La définition définit cela sous encapsulationcela implique la dissimulation de tout ou partie du code du programme. L'essence du concept d '"encapsulation" est la manipulation des modificateurs d'accès. Cela signifie que le développeur décide lui-même quelles propriétés, méthodes et classes seront ouvertes à la classe client et lesquelles sont cachées.

Modificateurs d'accès

programmation d'encapsulation
Il existe de tels modificateurs d'accès qui, entre autres, peuvent manipuler l'encapsulation (programmation Java):

  • public (public - public, open, access) - accès partagé à la fois pour les objets et classes actuels, et pour le monde extérieur;
  • privé ("privé" - privé, privé, accès caché) - accès privé, dont l'essence est complètement opposée à la précédente. Fournit un accès uniquement à partir de la classe actuelle;
  • protected (protected, semi-hidden, access) - accès pour la classe actuelle et ses dérivés;
  • Par défaut, un modificateur d'accès non spécifié implique que le champ / méthode est visible pour l'ensemble du package de classe en cours.

En C # ("C Sharp"), en plus du spécifié (à l'exclusion de ce dernier), il existe encore de tels modificateurs:

  • interne (interne) - accessibilité dans la collection actuelle, accès fermé pour tous les autres cas;
  • internal protected ("accès protégé interne") - la combinaison de deux modificateurs en un, dans lequel les propriétés des deux se manifestent.

Rôle de l'encapsulation

Le mécanisme d'encapsulation vous permet d'exclure l'influence externe sur le code du programme et l'utilisation incorrecte des données incorporées dans celui-ci. Ceci est fait en combinant le code et les données en un.

exemple de programmation d'encapsulation

Objet et encapsulation

Intégration de la mise en œuvre du module logiciel etLes données incorporées dans le code en programmation s'appellent un objet. L'essence de sa connexion avec l'encapsulation réside dans le fait que c'est cette technique qui permet de maintenir et d'assurer l'intégrité du mécanisme en question.

Avantage de l'encapsulation

L'encapsulation est un moyen de simplifier le processus d'encodage. De nombreuses lignes de code restent "dans les coulisses", et dans le travail principal de classe va avec des instances d'objets.

L'idée de la protection des données

L'encapsulation est aussi un mécanismeréalise l'idée de la protection des données. la programmation orientée objet logique du programme est construit sur la base de ce que la plupart des données seront modificateur d'accès caché privé (privé, privé) ou protégé (protégé). Le monde extérieur, le client accidentellement ou délibérément de ne pas endommager la mise en œuvre d'un module logiciel. Parce qu'en fait, il le rend très facile à même pas sur le but, l'encapsulation - c'est un très bon principe.

Unités d'encapsulation

Classe, comme unité de base de l'encapsulation,décrit les données et contient le code qui est capable de fonctionner avec ces données. C'est aussi la base pour construire un objet. Ce dernier, à son tour, est représenté comme une instance de la classe.

programmation d'encapsulation Java
La terminologie suivante est également utilisée:

  • les membres sont le code et les données inclus dans la classe;
  • les champs, ou les variables d'instance - les données dites qui définissent la classe;
  • fonctions membres: elles contiennent le code lui-même. Les fonctions membres sont un nom générique. Un cas particulier est les méthodes.

Encapsulation sur un exemple concret

la programmation d'encapsulation est

Exemple d'encapsulation (programmation):

* Note:

description est une description de la méthode / propriété / variable, c'est-à-dire commentant ce qui se passe réellement dans le programme. Démontré avec les balises d'ouverture / fermeture

utilisant le système;

espace de noms OOPLibrary.Auto

{

///

/// Cette classe est destinée à décrire les propriétés et les actions d'une voiture

///

Classe publique Auto

{

///

/// Une variable créée pour écrire, quel âge a la voiture, puisque l'intervention externe dans cette propriété est considérée par le développeur comme superflue

/// il est marqué avec le modificateur private, c'est-à-dire privé, privé (voir la description ci-dessus).

///

int_age privé;

///

/// Variable booléenne (seulement deux valeurs possibles - oui ou non) qui indique si la voiture est en train de bouger

/// Il ne devrait pas non plus être ouvert à l'utilisateur final, quel qu'il soit. Par conséquent, cette variable est affectée d'un modificateur d'accès privé "privat"

///

bool privé _isMoving;

///

/// Cette variable de chaîne doit contenir des informations sur la couleur de la voiture. Il peut être sujet à des changements d'influences externes

/// parce que le modificateur d'accès public "public" a été choisi pour la couleur.

///

chaîne publique Couleur;

///

/// Dans ce cas particulier, nous supposons que le nom de la voiture peut aussi être changé

/// affecte un modificateur public (accès public pour tout le monde, indépendamment de la classe ou de l'assemblage).

///

chaîne publique Name;

///

/// Le constructeur de classe est ouvert, et toutes les propriétés exprimées par des variables et spécifiées plus tôt, obtiennent leurs valeurs

///

Auto publique ()

{

_age = 5;

_isMoving = false;

Couleur = "Violet";

Nom = "Skoda Octavia";

}

///

/// La méthode implémente la valeur de retour de l'âge de auto. Pourquoi est-ce nécessaire?

/// le modificateur d'accès privé ne permet pas au client de le changer.

///

/// Renvoie l'âge de la voiture.

chaîne publique GetAge ()

{

return "Pour l'instant, la machine sélectionnée est" + _age + "ans.";

}

///

/// Si la voiture ne bouge pas, cette méthoderéalise le début du mouvement. Une vérification est effectuée sur la variable indiquant l'état de la voiture (qu'elle soit en voyage ou non) et, en fonction des résultats, l'action correspondante est effectuée / un message correspondant est affiché.

///

public void Start ()

{

if (_isMoving)

{

Console.WriteLine ("Le mouvement a déjà été démarré");

}

autre chose

{

_isMoving = true;

Console.WriteLine ("Pour commencer, attention .. Forward! Allons-y!");

}

}

///

/// Si le mouvement a été démarré, alors cette méthode l'arrête. La même logique de programmation que dans le cas précédent.

///

public void Stop ()

{

if (_isMoving)

{

_isMoving = false;

Console.WriteLine ("Stop, machine");

}

autre chose

{

Console.WriteLine ("Erreur: la voiture est déjà en place, ne bouge pas");

}

}

///

/// Tourner à gauche s'il y a un mouvement de véhicule

///

public void MoveLeft ()

{

if (_isMoving)

{

Console.WriteLine ("Tourné à gauche");

}

autre chose

{

Console.WriteLine ("Erreur: la voiture est immobile, la fonction de rotation est actuellement indisponible");

}

}

///

/// Méthode similaire avec rotation vers la droite

///

public void MoveRight ()

{

if (_isMoving)

{

Console.WriteLine ("Tourner à droite a réussi");

}

autre chose

{

Console.WriteLine ("Erreur: la voiture n'a pas encore bougé." Tourner vers la droite est actuellement une action impossible. ");

}

}

}

}

</ p>
  • Note: