Encapsulation ou dissimulation d'informations
Quelles sont exactement les différences entre Ecapsulation et se Cacher de l'Information?
Eh bien, je sais que faire des domaines privé et ensuite faire setter et getter des champs est ecapsulation.Cependant, ne l'encapsulation de dire juste ce?
supposons que j'ai une classe comme décrit ci-dessous.
public Class IsThisEncapsulation
{
public int age;
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
}
Maintenant, c'est la classe IsThisEncapsulation un exemple d'Encapsulation?
Maintenant serait de rendre le champ " âge " dans la classe ci-dessus privé atteindre l'information, la clandestinité?
Pourriez-vous me donner des exemples clairs qui va m'aider à distinguer ces concepts clairement?
source d'informationauteur user1720616
Vous devez vous connecter pour publier un commentaire.
---> Encapsulation de la programmation orientée objet est un concept où l'état de l'objet(champs de la classe) et c'est un comportement(méthodes) est enroulée ensemble. Java fournit encapsulation à l'aide de
class
.--> mécanisme de restreindre l'accès à certains les composants de l'objet. Votre exemple ci-dessus est le cas de se Cacher de l'Information si vous faites
age
privé.D'abord, les Informations/Données Cachette était considéré comme la partie de l'Encapsulation, et les définitions de l'Encapsulation serait:
la deuxième définition est motivé par le fait que, dans de nombreux langages OOP de cacher des composants n'est pas automatique ou peut être substituée; ainsi, se cacher de l'information est définie comme une notion distincte par ceux qui préfèrent la deuxième définition.
Référence: wikipage
De abstraction-vs-information-cacher-vs-encapsulation
Se Cacher De L'Information:
Encapsulation:
Il y a différence subtile entre les personnes, j'aime la description de "Croissance des Logiciels Orientés Objet Guidé par les Tests" livre écrit par Steve Freeman et Nat Pryce:
Qui dit:
Encapsulation
Assure que le comportement d'un objet ne peuvent être affectés au travers de son API.
Il nous permet de contrôler combien un changement à un objet aura un impact sur d'autres parties de
le système en s'assurant qu'il n'y a pas inattendu des dépendances entre les
composants sans rapport.
Se cacher de l'Information
Dissimule comment un objet implémente ses fonctionnalités derrière l'abstraction
de son API. Il nous permet de travailler avec les plus hautes abstractions en ignorant les éléments de bas niveau
qui sont sans rapport avec la tâche à portée de main.
Encapsulation et de se cacher de l'information sont très notions étroitement liées, bien que leurs définitions précises varient en fonction de qui vous parlez.
Le concept de "se cacher de l'information" a d'abord été décrit par Parnas (1971)qui a suggéré que l'accès à l'information doit être limité afin de réduire l'interconnexion d'un système. Il a proposé que ce serait de faciliter le fractionnement d'un système en modules, tout en maintenant un user-friendly interface externe et permettant la mise en œuvre de détails pour être modifié sans affecter les clients.
Le terme "encapsulation" a été inventé par Zilles (1973) pour décrire l'utilisation de procédures de contrôle de l'accès aux données sous-jacentes, afin de réduire la complexité du système et de protéger les données contre les risques de modification.
Par la suite, Parnas (1978) décrit se cacher de l'information et de l'encapsulation (et abstraction) comme synonyme des termes qui décrivent le masquage des détails d'un système qui sont susceptibles de changer. Cependant, des distinctions ont été établies entre se cacher de l'information et de l'encapsulation, comme par Micallef (1987)qui décrit l'encapsulation comme "l'application stricte de se cacher de l'information". Certains auteurs, comme Cohen (1984) et Abreu et de Melo (1996) de décrire les "mécanismes d'encapsulation", en particulier dans les langages de programmation orientée objet, permettant de se cacher de l'information.
Meyers (2000) suggère que le degré auquel un morceau de code est encapsulé dépend de la quantité de code qui serait brisé si elle a changé. En ce sens, les données privées et les méthodes sont plus encapsulée moins le nombre de méthodes par lesquelles ils peuvent être consultés. En revanche, les données publiques et les méthodes sont complètement capsulées, comme la quantité de code par lequel ils peuvent être consultés est inconnue.
À l'inverse, Rogers (2001) suggère que l'encapsulation est tout simplement la langue mécanisme qui permet aux données d'être livré avec des méthodes qui opèrent sur des données. Il prétend que l'encapsulation, fondamentalement, n'a rien à voir avec se cacher de l'information. Cependant, cette définition va à l'encontre de presque tout l'utilisation de ce terme dans la littérature académique dans les 28 ans avant la publication de son article. Il y sont quelques autres exemples de cette utilisation, par exemple Archer et Stinson (1995)mais ils sont peu et loin entre pas particulièrement remarquable.
En conclusion, se cacher de l'information est l'idée que l'information doit être caché, de sorte que la conception ne peut être modifié sans affecter les clients. Cela permet une augmentation de la flexibilité et de robustesse. L'Encapsulation peut être considéré comme la même chose que se cacher de l'information, mais le terme est souvent utilisé pour décrire la mise en œuvre pratique de se cacher de l'information, en particulier dans la programmation orientée objet.
Comme un exemple de se cacher de l'information/encapsulation, considérer cette classe:
La mise en œuvre de cette classe est complètement capsulées, ce qui signifie qu'il est rigide (par exemple, nous ne pouvons pas facilement ajouter le support pour différents cents dans le futur) et dangereux (par exemple, le compte peut être modifiée pour être négatif). Cependant, si nous cacher les données derrière défini formellement une interface de méthodes, nous avons un gain de flexibilité et de sécurité.
Nous avons maintenant le contrôle sur la façon dont l'état est modifié, et nous pouvons aussi changer la mise en œuvre sans casser le code de client:
La classe est maintenant mieux encapsulé parce que nous avons des informations cachées sur son implémentation sous-jacente.
viens de voir leur sens littéral.
L'Encapsulation est juste de mettre les choses dans un sac.
c'est à dire mettre tous les attributs et méthodes d'une classe réalise l'Encapsulation
Cependant, dans une certaine mesure, vous pouvez aussi réaliser masquage d'informations par l'encapsulation.
modificateurs d'accès de ne pas contribuer à l'encapsulation, mais à se cacher de l'information.
Pour Répondre à votre question:
Se cacher de l'Information: Est de cacher les parties essentielles de l'objet qui exposent la façon dont il est mis en œuvre à l'interne et à l'exposer plus hautes abstractions. Par exemple : Dans un PLAT à distance, nous sommes exposés que les touches d'interagir avec la TÉLÉVISION, nous ne sommes pas au courant de ce qui se passe à l'intérieur.
Encapsulation: l'Encapsulation est la combinaison de données et de méthodes, et permettant à l'interne de données accessibles par les méthodes publiques. Donc, oui, si, dans votre classe, vous faites de la variable de l'âge, le secteur privé, vous aurez à réaliser l'encapsulation
-> Encapsulation nous permet de fournir l'accès à certaines parties d'un objet, de limiter dans le même temps,
l'accès aux autres. En d'autres termes, l'encapsulation permet de faire se cacher de l'information.
-> se cacher de l'Information est en fait le processus ou d'un acte de restreindre