encapsulation vs abstraction exemple du monde réel
Pour un exemple d'encapsulation, je pense, de l'interaction entre un utilisateur et un téléphone mobile. L'utilisateur n'a pas besoin de connaître le fonctionnement interne de la téléphonie mobile pour fonctionner, ce qui est appelé l'abstraction. Mais d'où vient l'encapsulation dans cet exemple? Quelqu'un pourrait s'il vous plaît faire la lumière sur cette?
18 réponses
Encapsulation est un moyen de réaliser "cacher des informations" donc, en suivant votre exemple, vous ne "besoin de savoir le fonctionnement interne du téléphone mobile pour fonctionner" avec elle. Vous disposez d'une interface 151950920" pour utiliser le comportement de l'appareil sans connaître les détails de la mise en œuvre.
Abstraction de l'autre côté, peut être expliqué comme la capacité d'utiliser la même interface pour différents objets. Différentes implémentations d'une même interface peuvent exister. Les détails sont cachés par encapsulation .
Abstraction : vous n'achèterez jamais un" appareil", mais toujours quelque chose de plus spécifique : iPhone, GSII, Nokia 3310... Ici, iPhone, GSII et N3310 sont des choses concrètes, l'appareil est abstrait.
Encapsulation : vous avez plusieurs appareils, tous ont un port USB. Vous ne savez pas quel type de circuit imprimé il y a de retour, vous avez juste à savoir que vous serez en mesure de brancher un câble USB en elle.
L'Abstraction est un concept autorisé par encapsulation. Mon exemple n'était pas le meilleur (il n'y a pas de lien réel entre les deux blocs).
vous pouvez faire l'encapsulation sans utiliser l'abstraction, mais si vous voulez utiliser une certaine abstraction dans vos projets, vous aurez besoin d'encapsulation.
en termes généraux,L'Abstraction ne fait que Cacher les choses complexes derrière une procédure particulière pour faire paraître la procédure simple.
Exemple: Monitor ON/OFF :: --l'utilisateur n'a pas besoin d'en savoir beaucoup sur toutes les puces qui fonctionnent quand le Monitor est activé ou désactivé..Tout ce qu'il a besoin de savoir, c'est que L'on-Monitor fonctionne et L'on-function OFF-Monitor est éteint...
ou mieux chercher une voiture--tout le monde sait qu'il y a un engrenage spécial qui change l'engrenage,personne ne prend la peine de savoir ce que toutes les fonctionnalités subissent pour un engrenage à changer.donc,c'est l'abstraction(éviter les implémentations indésirables pour éviter la complexité).
ainsi,si un développeur fournit une bonne abstraction, les utilisateurs ne seront pas tentés de regarder les mécanismes internes de l'objet.
l'Abstraction est obtenu au moyen de la classe abstraite ayant une ou plusieurs méthodes abstraites. Qui n'est rien mais caractéristique essentielle qui doit être mise en œuvre par la classe qui l'étend.
e.g.
quand vous inventez / concevez une voiture, vous définissez des caractéristiques comme la voiture devrait avoir 4 portes, casser, volant etc... Si quelqu'un utilise cette conception doit inclure ces caractéristiques. L'implémentation n'est pas la tête de l'abstraction. Il se contentera de définir les caractéristiques à inclure.
Encapsulation est la restriction d'un utilisateur à suivre une procédure particulière pour contrôle d'accès d'un processus particulier.Il assure simplement la sécurité et la robustesse du système.
exemple: nous pouvons considérer le HR dans une entreprise comme une personne qui travaille sur le principe de L'Encapsulation .i.e.
nous ne pouvons pas parler directement avec d'autres départements, nous avons besoin de communiquer à travers eux par le HR.Cela garantit la sécurité et une meilleure tenue des dossiers de l'entreprise.
ensemble, nous pouvons prendre exemple d'un UNDER CONSTRUCTION BUILDING..
où nous pouvons dire que les choses comme " non. des cadres, des types de matériaux,Pas de travailleurs, etc., comme abstraction dont ils ont besoin dans toute Construction de bâtiment.
mais, en même temps, L'Inclusion de chaque tel domaine dans un entrepreneur qui agit en tant que médiateur entre les travailleurs et le batiment-investisseur peut être considérée comme Encapsulation. Comme, il cache toutes les propriétés ci-dessus dans une entité.
Donc Si vous auriez compris jusqu'à maintenant, vous pouvez dire que l'abstraction n'est qu'un sous-ensemble de L'ENCAPSULATION.j'.e.Chaque entité effectue l'abstraction est encapsulé en interne mais chaque chose qui montre encapsulation ne doit pas être toujours abstraction.
par exemple .ToString()
méthode définie dans presque toutes les classes est la mise en œuvre de Abstraction
parce que nous ne sommes pas la fonctionnaltiy L'intérieur,tout ce que nous nous soucions est qu'il change presque tout en chaîne.Et comme il assemble une unité, il est encapsulé aussi..Mais,L' les membres privés que nous cachons et auxquels nous accédons par Properties
est un exemple d'encapsulation seulement car il est fait essentiellement garder la sécurité des données dans mindd..!!
J'espère que ceci répondra à votre question..!!
Encapsulation est de cacher les variables ou quelque chose à l'intérieur d'une classe, empêchant les parties non autorisées à utiliser. Donc les méthodes publiques comme getter et setter y accèdent et les autres classes appellent ces méthodes pour accéder
Abstraction implique la possibilité de définir des objets qui représentent des "acteurs" abstraits qui peuvent effectuer des travaux, rendre compte et changer leur état, et "communiquer" avec d'autres objets dans le système.
considérons l'exemple ci-dessous en temps réel:
Encapsulation : en tant que pilote, vous savez démarrer la voiture en appuyant sur le bouton Démarrer et les détails internes des opérations de démarrage sont cachés de vous. Donc tout le processus de démarrage vous est caché sinon nous pouvons dire que l'opération de démarrage est encapsulée par vous.
ou
la roue motrice est encapsulée dans le processus de rotation de la roue de votre .
Abstraction :
avant de mentionner quoi que ce soit au sujet de l'abstraction, nous pouvons prendre ici trois utilisateurs différents (je les appelle comme entité)
1) Vous 2) Mécanicien Local 3) Expert
Vous l'Entité: Puisque vous savez seulement pour démarrer la voiture en appuyant sur un bouton et toutes les autres opérations derrière la scène sont abstraites de vous.
local Mechanic Entity: notre mécanicien local connaît une partie de la mise en route de la voiture, c'est-à-dire qu'il peut ouvrir le capot de la voiture et vérifier le câble de la batterie ou la cale, etc. Bref, L'entité mécanique locale connaît quelques-unes des implémentations de la voiture.
entité experte: depuis notre expert (Le concepteur de la voiture) mécanicien sait toutes les opérations de notre voiture, il peut le réparer très rapidement. Bref, Expert Entity connaît toutes les implémentations de la voiture.
le fonctionnement de la voiture est complètement abstrait de vous et il est partiellement mis en œuvre à L'entité mécanique locale et entièrement mis en œuvre à L'entité Expert. Vous êtes donc une classe abstraite n'ayant que des méthodes abstraites, L'entité mécanique locale vous a étendu (Puisqu'il est aussi un utilisateur ordinaire) et il mis en œuvre certaines des méthodes et dernier notre entité d'experts extension mécanique locale et la mise en œuvre de toutes les méthodes .
je pense que c'est un bon exemple .
tout a beaucoup de propriétés et de comportements alors prenez n'importe quel objet que vous voulez TV, Mobile, Voiture, humain ou n'importe quoi.
l'Abstraction:
- processus de sélection de l'essence d'un objet dont vous avez vraiment besoin
- en d'autres termes, choisissez les propriétés dont vous avez besoin dans l'objet
Exemple:
un. le Son de la TÉLÉ, des Visuels, de la Puissance d'Entrée, les Canaux d'Entrée.
b. Mobile - le Bouton de l'écran Tactile, bouton power, bouton volume, sim port.
C. Voiture - Direction, Bris, Embrayage, Accélérateur, Trou De Serrure.
d. L'Homme De La Voix, Le Corps, Les Yeux, La Vue, L'Ouïe, Les Émotions.
Encapsulation:
- procédé de dissimulation de la détails d'un objet dont vous n'avez pas besoin
- En d'autres termes, masquer les propriétés et les opérations que vous n'avez pas besoin de l'objet, mais sont nécessaires pour que l'objet fonctionne correctement
Exemple:
un. TV - les Internes et les connexions de haut-Parleur, d'Affichage, de distribution de l'Alimentation b/w composants, mécanisme de Canal.
B. Mobile - comment l'entrée est analysée et traitée, comment appuyer sur un bouton on/off ou des modifications de volumes, de la façon de sim va se connecter à des fournisseurs de services.
C. voiture - comment tourner la direction tourne la voiture, comment ralentir ou arrêter la voiture, Comment embrayage fonctionne, comment accélérateur augmente la vitesse, comment trou de la clé sur/de la voiture.
d. de l'Homme - Comment la voix est produite, Ce qui est à l'intérieur du corps, la Façon de la vision fonctionne, et Comment l'audience, Comment générer des émotions et de l'effet de nous.
RÉSUMÉ tout ce dont vous avez besoin et de les ENCAPSULER tout ce que vous n'avez pas besoin ;)
la formulation de votre question est étrange - Abstraction vs Encapsulation? Il devrait être - quelqu'un expliquer l'abstraction et d'encapsulation...
L'Abstraction est la compréhension de l'essence de la chose.
un exemple du monde réel est l'Art abstrait. Les artistes de ce style essaient de capturer / peindre l'essence de la chose qui lui permet encore d'être la chose. Cette brune frottis de 4 lignes capture l'essence de ce qu'un taureau est.
Encapsulation est noir de boxe.
un téléphone cellulaire en est un bon exemple. Je n'ai aucune idée de comment le téléphone cellulaire se connecte à un satellite, une tour, ou un autre téléphone. Je n'ai aucune idée de comment cette fichue chose comprend mes presses de clés ou comment il faut et envoie des photos à une adresse e-mail ou un autre numéro de téléphone. Je n'ai aucune idée des détails complexes de la plupart de la façon dont un smartphone moderne fonctionne. Mais, je peux l'utiliser! Les téléphones ont des interfaces standard (Oui-à la fois littérale et conception de logiciel) qui permet à quelqu'un qui comprend les bases d'un de les utiliser presque tous.
Quel est le lien entre les deux?
l'abstraction et l'encapsulation sont toutes deux des fondements sous-jacents de la pensée et de la conception orientées objet. Ainsi, dans notre téléphone cellulaire exemple. La notion de smartphone est une abstraction, dans laquelle certaines fonctionnalités et certains services sont encapsulés. L'iPhone et Galaxy sont d'autres abstractions de l'abstraction de haut niveau. Votre iPhone physique ou Galaxy sont des exemples concrets de multiples couches d'abstractions qui contiennent des fonctionnalités et des services encapsulés.
Abstraction Cela signifie que nous nous concentrons sur les qualités essentielles d'une chose plutôt que sur un exemple spécifique et nous rejetons automatiquement ce qui est sans importance ou sans pertinence.
exemple Nous écrivons une classe de compte bancaire, les qualités essentielles du compte bancaire sont la date D'ouverture,le titre du compte,le numéro de compte, le solde, etc...
Encapsulation Signifie l'idée de l'encapsulage ou entourant quelque chose non seulement pour garder le contenu ensemble, mais aussi pour protéger et restreindre la forme accéder à l'extérieur.Avec le secret Il s'agit de réduire les dépendances entre les différentes parties de l'application.
exemple Dans notre classe de compte bancaire Quelqu'un qui accède à l'attribut de solde et d'essayer de le changer ,tentative peut être réussie s'il n'y a pas encapsulation.
Encapsulation aide à adhérer au principe de Responsabilité Unique et L'Abstraction aide à adhérer au Code à L'Interface et non à mettre en œuvre.
dire que j'ai une classe pour la voiture : La classe du fournisseur de services et la classe du conducteur : la classe du consommateur de services.
pour Abstraction : nous définissons classe abstraite pour voiture et définissons toutes les méthodes abstraites en elle , qui sont fonction disponible dans la voiture comme: changeGear(), applyBrake().
maintenant la voiture réelle (classe de béton i.e. comme Mercedes, BMW mettra en œuvre ces méthodes à leur manière et abstrait l'exécution et l'utilisateur final va encore appliquer rupture et changement de vitesse pour voiture particulière en béton et polymorphiquement l'exécution se produira comme défini dans la classe de béton.
pour Encapsulation: Maintenant, dites Mercedes venir avec une nouvelle fonctionnalité/ technologie: freinage anti-dérapage, tout en mettant en œuvre le applyBrake(), il va encapsuler ce caractéristique dans la méthode applyBrake() et donc assurant la cohésion, et le consommateur de service aura toujours accès par la même méthode applyBrake () de l'objet de voiture. Ainsi L'Encapsulation permet d'aller plus loin dans la même implémentation de classe concrète.
L'Encapsulation cache des informations.
Abstraction cache les détails de la fonctionnalité.
Encapsulation est réalisée par la construction de la classe. L'Abstraction est réalisée en créant des Classes abstraites ou des Interfaces en plus de votre classe.
dans l'exemple donné dans la question, nous utilisons la classe pour sa fonctionnalité et nous ne nous soucions pas de la façon dont l'appareil atteint cela. Donc nous pouvons dire les détails de le téléphone sont "résumé" de nous.
L'Encapsulation cache ce que le téléphone utilise pour réaliser ce qu'il fait; L'Abstraction cache comment il le fait.-
je me sens comme encapsulation peut faire plus de sens à discuter quand vous voyez comment ne pas faire dans la programmation. Par exemple, considérez une classe de voiture comme ci-dessous.
class Car{
public float speed =0;
public boolean isReverse = false;
public boolean isStarted = false;
}
le code client peut utiliser la classe ci-dessus comme ci-dessous.
class Main{
public static void main(args String[]){
Car car = new Car();
// No need to start??
car.speed = 100; // Turbo mode directly to 100
car.speed = 0; // Turbo break
}
}
voir plus à: http://brevitaz.com/encapsulation-example-benefits-java/
il s'agit d'un accès non contrôlé à la vitesse de la voiture et à d'autres variables. Par encapsulation, Car class peut avoir le contrôle complet sur la façon dont les variables de données au sein de la classe de voiture peut être modifié.
toute entité concrète ayant un certain comportement est un exemple d'Encapsulation. Le comportement est fourni en enveloppant quelque chose et cacher quelque chose du client.Dans le cas de mobile, il s'agit de signaux, puces, circuits, batterie et ainsi de suite.
pour l'abstraction du même exemple-l'utilisateur normal peut dire que je suis ok avec tout ce qui permet de faire des appels et de recevoir appeler. Cette abstraction peut être remplacée par n'importe quel mobile concret. Vérifier exemples D'Abstraction .
Permettez-moi de donner mes 2 cents d'un exemple du monde réel-analogie près de lui.
disons que vous avez un site d'abonnement, E. g A Site wordpress
chaque utilisateur a un rôle, par exemple administrateur, abonné et ainsi de suite. De nombreux utilisateurs peuvent être administrateurs, abonnés, etc..
donc l'abstraction ici est reflété dans le fait que tout utilisateur avec le rôle d'administrateur peut faire un ensemble de choses, il n'importe pas quel utilisateur spécifique c'est (c'est un exemple de abstraction ).
d'autre part, les utilisateurs abonnés n'ont pas accès à certains paramètres du site ,donc certains internes de l'application sont encapsulés pour les abonnés simples (ceci est un exemple de encapsulation )
comme on peut le voir abstraction et encapsulation sont des concepts relatifs, ils s'appliquent en ce qui concerne quelque chose de spécifique.
on peut suivre ce raisonnement et expliquer polymoprhisme et héritage .
par exemple les utilisateurs super-admin pourraient faire toutes les choses que les utilisateurs admin pourraient faire, plus encore. De plus, si les Rôles admin reçoivent une mise à jour dans la fonctionnalité, les super-admins obtiendraient la même mise à jour. Ainsi, on peut voir ici un exemple de héritage , dans les rôles super-admin hériter toutes les propriétés de rôles d'administrateur et de les étendre. Note que pour la plupart des parties du site, les administrateurs sont interchangeables avec les super-administrateurs (ce qui signifie qu'un super-administrateur utilisateur peut facilement être utilisé à la place d'un administrateur, mais pas vice-versa en général).
Encapsulation est définie comme le processus de protection d'un ou de plusieurs détails de monde extérieur grâce à l'accès au droit. Il indique le niveau d'accès à certains détails. L'Abstraction et L'Encapsulation fonctionnent main dans la main parce que L'Abstraction indique quels détails doivent être rendus visibles et L'Encapsulation fournit le niveau d'accès droit à ces détails visibles. i.e.-il implémente le niveau d'abstraction désiré.
p.ex.
en parlant de Bluetooth que nous avons d'habitude dans notre mobile. Lorsque nous commutons sur le Bluetooth je suis en mesure de connecter un autre mobile, mais pas en mesure d'accéder aux autres fonctionnalités mobiles comme la composition d'un numéro, l'accès boîte de réception, etc. C'est parce que, Bluetooth fonctionnalité est donné un certain niveau d'abstraction.
un autre point est quand mobile a est connecté avec mobile B via Bluetooth tandis que mobile B est déjà connecté à mobile C alors A n'est pas autorisé à connect c via B. Ceci est dû à une restriction d'accessibilité.
je suppose qu'une coquille d'œuf peut être considéré l'encapsulation et le contenu l'abstraction. Le shell protège l'information. Vous ne pouvez pas avoir le contenu d'un œuf sans coquille.,,LOL
si vous avez vu important appareil de télévision, connexions TV et tube TV couleur est caché à l'intérieur de L'étui TV qui n'est pas été exposé pour les téléspectateurs comme nous et n'a exposé que les choses nécessaires D'un TV comme les touches de la chaîne TV, les touches de volume TV, interrupteur ON/OFF, interrupteur câble et télécommande TV pour les téléspectateurs de l'utiliser.Cela signifie machine de télévision, connexions TV et tube TV couleur est une donnée indésirable et non nécessaire pour les téléspectateurs de voir est caché de l'extérieur du monde
So l'encapsulation des moyens de cacher les caractéristiques importantes d'une classe qui n'est pas nécessaire d'être exposés à l'extérieur d'une classe et d'exposer seulement les choses nécessaires d'une classe. Ici, la partie cachée d'une classe agit comme L'Encapsulation et la partie exposée d'une classe agit comme L'Abstraction.
pensez à Abstraction comme masquant les détails du clavier et de l'écran d'affichage, Encapsulation comme masquant les circuits internes qui les lient.
Abstraction qui cachent des détails internes au monde extérieur par exemple vous créez une classe(comme calculatrice un de la classe) mais pour l'utilisation finale vous fournissez l'objet de la classe ,avec l'aide de l'objet qu'ils joueront et exécuteront l'opération ,il ne sait pas quel type de mécanisme utiliser à l'interne .Objet de classe sous forme abstraite .
Encapsulation est la technique de rendre les champs dans une classe privée et de fournir l'accès aux champs par des méthodes publiques. Si un champ est déclaré privé, il ne peut être accédé par personne en dehors de la classe, cachant ainsi les champs à l'intérieur de la classe. Pour cette raison, l'encapsulation est aussi appelée dissimulation de données.Par exemple calculatrice de classe qui contient des méthodes privées getAdd, getMultiply .
Mybe réponse ci-dessus vous aidera à comprendre le concept .
Abstraction
il est utilisé pour gérer les complexités des OOPs. En utilisant cette propriété, nous pouvons fournir des caractéristiques essentielles d'un objet à l'utilisateur sans son arrière-plan explications. Par exemple, lors de l'envoi d'un message à un ami,nous écrivons simplement le message, disons "hiiii" et appuyez sur "Envoyer" et le message est livré à sa destination (elle, ami). Ici, nous voyons l'abstraction au travail, c'est à dire nous sont moins préoccupés par le fonctionnement interne de mobile responsable de l'envoi et de la réception des messages
Abstraction
nous utilisons de nombreuses abstractions dans notre vie quotidienne.Envisagez une voiture.La plupart d'entre nous ont une vision abstraite du fonctionnement d'une voiture.Nous savons comment interagir avec elle pour lui faire faire ce que nous voulons faire: nous avons mis de l'essence, tourner une clé, appuyez sur quelques pédales, et ainsi de suite. Mais nous ne comprenons pas nécessairement ce qui se passe à l'intérieur de la voiture pour la faire bouger et nous n'en avons pas besoin. Des Millions d'entre nous utilisent des voitures tous les jours sans comprendre les détails de comment ils fonctionnent.L'Abstraction nous aide à aller à l'école ou au travail!
un programme peut être conçu comme un ensemble d'abstractions en interaction. En Java, ces abstractions sont capturées dans des classes. Le créateur d'une classe obviusly a savoir son interface, tout comme le conducteur d'une voiture peuvent utiliser le véhicule sans savoir comment le moteur fonctionne.
Encapsulation
Considérer un système Bancaire.Système bancaire ont propriétés comme le numéro de compte, le type de compte,le solde ..etc. Si quelqu'un essaie de changer le solde du compte,la tentative peut être réussie s'il n'y a pas d'encapsulation. Par conséquent, l'encapsulation permet à class d'avoir le contrôle complet de leurs propriétés.