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 du téléphone mobile pour fonctionner, c'est ce qu'on appelle l'abstraction. Mais où l'encapsulation correspond - elle à cet exemple? Quelqu'un pourrait-il faire la lumière là-dessus?

Author: LittleBobbyTables, 2012-08-22

18 answers

L'encapsulation est un moyen de réaliser "masquage d'informations" ainsi, suivant votre exemple, vous n'avez pas "besoin de connaître le fonctionnement interne du téléphone mobile pour fonctionner" avec lui. Vous avez une interface pour utiliser le comportement du périphérique sans connaître les détails de l'implémentation.

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 du même interface peut exister. Les détails sont masqués par encapsulation .

 67
Author: davioooh, 2016-07-27 15:26:44

Abstraction : vous n'achèterez jamais un "appareil", mais vous achèterez 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 périphériques, tous ont un port USB. Vous ne savez pas quel type de circuit imprimé il y a de retour, il vous suffit de savoir que vous pourrez y brancher un câble USB.

L'abstraction est un concept, qui est autorisé par l'encapsulation. Mon l'exemple n'était pas le meilleur (il n'y a pas de lien réel entre les deux blocs).

Vous pouvez faire de l'encapsulation sans utiliser d'abstraction, mais si vous voulez utiliser de l'abstraction dans vos projets, vous aurez besoin d'encapsulation.

 58
Author: zessx, 2018-09-29 17:20:32

En termes généraux,l'abstraction ne fait que cacher les choses complexes derrière une procédure particulière pour rendre la procédure simple.
Exemple: Monitor ON/OFF :: The L'utilisateur n'a pas besoin de savoir grand-chose sur toutes les puces qui fonctionnent lorsque Monitor est allumé ou ÉTEINT..Tout ce qu'il doit savoir est Sur la fonction ON-Monitor est sur et sur la fonction OFF-Monitor est off...

Ou Mieux Chercher une voiture Everyone Tout le monde Sait qu'Il y a une machine à engrenages spéciale Qui change le équipement, personne ne prend la peine de savoir ce que toutes les fonctionnalités subissent pour un équipement à change..So, C'est l'abstraction(éviter les implémentations indésirables pour éviter la complexité).

Donc,Si un développeur fournit une bonne abstraction, les utilisateurs ne seront pas tentés de jeter un coup d'œil aux mécanismes internes de l'objet.

L'abstraction est obtenue en rendant abstraite une classe ayant une ou plusieurs méthodes abstraites. Ce qui n'est rien d'autre qu'une caractéristique essentielle qui devrait être implémentée par la classe qui l'étend. e.g. quand vous inventant / concevant une voiture vous définissez des caractéristiques comme la voiture devrait avoir 4 portes, pause, volant etc so donc tout le monde utilise cette conception devrait inclure ces caractéristiques. L'implémentation n'est pas la tête chacune de l'abstraction. Il définira simplement les caractéristiques qui devraient être incluses.

L'encapsulation limite un utilisateur à suivre une procédure particulière pour accéder au contrôle d'un particulier process.It Juste assure la sécurité et assure la robustesse du système.

Exemple: Nous pouvons considérez les RH dans une entreprise comme une personne qui travaille sur le principe de l'encapsulation .i.e. nous ne pouvons pas parler directement aux autres départements nous devons communiquer à travers eux par le biais des RH.Cela garantit la sécurité et une meilleure maintenance des dossiers de l'entreprise.

Ensemble, nous pouvons prendre l'exemple d'un UNDER CONSTRUCTION BUILDING..où nous pouvons dire que des choses comme 'non. des gestionnaires requis, Types de matériaux,Pas de travailleurs, etc. comme abstraction comme ils en ont besoin dans chaque construction de bâtiment.

Mais, en même temps le temps,l'inclusion de chaque domaine dans un ENTREPRENEUR qui agit en tant que médiateur entre les travailleurs et l'investisseur en bâtiment peut être considérée comme une encapsulation. Comme, Il cache toutes les propriétés ci-dessus dans une seule entité.

Par conséquent, Si vous l'avez compris jusqu'à présent, vous pouvez dire que l'abstraction n'est qu'un sous-ensemble d'ENCAPSULATION.j'.e.Chaque entité effectue l'abstraction est encapsulée en interne mais chaque chose qui montre que l'encapsulation n'a pas besoin d'être une abstraction Toujours.

Par exemple,la méthode .ToString() définie dans presque toutes les classes est l'implémentation de Abstraction parce que nous n'avons pas le functionaltiy à l'intérieur, tout ce qui nous importe, c'est qu'elle change presque tout en chaîne.Et comme il assemble une s une unité, il est encapsulé aussi..Mais, Les membres privés que nous cachons et accédons via Properties est un exemple d'encapsulation uniquement car cela se fait essentiellement en gardant la sécurité des données à l'esprit..!!

J'espère que Cela répond à votre Question..!!

 21
Author: Rahul Ranjan, 2013-03-29 10:06:57

L'encapsulation consiste à masquer les variables ou quelque chose à l'intérieur d'une classe, empêchant les parties non autorisées d'utiliser. Ainsi, 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 un travail, rendre compte de leur état et en modifier l'état, et "communiquer" avec d'autres objets du système.

Considérez le temps réel ci-dessous exemple:

l'Encapsulation: En tant que conducteur, vous savez comment démarrer la voiture en appuyant sur le bouton de démarrage et les détails internes des opérations de démarrage vous sont cachés. Ainsi, l'ensemble du processus de démarrage vous est caché, sinon nous pouvons vous dire que l'opération de démarrage est encapsulée.

OU

La roue motrice est encapsulé le processus de rotation de la roue de vous.

Abstraction:

Avant en mentionnant n'importe quoi sur l'abstraction, nous pouvons prendre trois utilisateurs différents ici (je les appelle en tant qu'entité)

1) Vous 2) Mécanicien local 3) Expert

Vous Entité: Puisque vous ne savez que démarrer la voiture en appuyant sur un bouton et toutes les autres opérations derrière la scène sont abstraites de vous.

Entité mécanique locale: Notre mécanicien local connaît une partie de la mise en œuvre du démarrage 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 cale etc. Donc, en bref, l'entité mécanique locale connaît certaines des implémentations de la voiture.

Entité experte: Comme notre expert (Concepteur de la voiture) mécanicien connaît toutes les opérations de notre voiture, il peut la réparer très rapidement. Donc, en bref, l'entité Experte connaît toutes les implémentations de la voiture.

Le fonctionnement de la voiture est complètement abstrait de vous et il est partiellement implémenté à l'Entité Mécanicien Locale et entièrement implémenté à l'Entité Expert. Si vous êtes un classe abstraite n'ayant que des méthodes abstraites, Local Mechanic Entity Vous a étendu (Puisqu'il est également un utilisateur ordinaire) et il a implémenté certaines des méthodes et dure notre entité experte étendant Local Mechanic et implémentant toutes les méthodes.

Je pense que c'est un bon exemple.

 14
Author: Sameer Kazi, 2017-06-21 15:22:45

Tout a de nombreuses propriétés et comportements alors prenez n'importe quel objet que vous voulez TV, Mobile, Voiture, Humain ou quoi que ce soit.

Abstraction:

  1. Processus de sélection de l'essence d'un objet dont vous avez vraiment besoin
  2. En d'autres termes, choisissez les propriétés dont vous avez besoin dans l'objet Exemple:
    a. TV - Son, Visuels, Puissance D'Entrée, Canaux D'entrée.
    b. Mobile-Bouton/écran tactile, bouton d'alimentation, bouton de volume, port sim.
    c. Voiture - Direction, Rupture, Embrayage, Accélérateur, Trou De clé.
    d. Humain - Voix, Corps, Vue, Ouïe, Émotions.

Encapsulation:

  1. Processus de masquage des détails d'un objet dont vous n'avez pas besoin
  2. En d'autres termes, cachez les propriétés et les opérations dont vous n'avez pas besoin de l'objet mais qui sont nécessaires pour que l'objet fonctionne correctement Exemple:
    a. TV-Interne et connexions de Haut-parleur, Affichage, Distribution d'énergie b/w composants, Mécanisme de canal.
    b. Mobile - Comment l'entrée est analysée et traitée, Comment appuyer sur un bouton marche/arrêt ou modifier les volumes, comment sim se connectera aux fournisseurs de services.
    c. Voiture - Comment tourner la direction fait tourner la voiture, Comment casser lentement ou arrêter la voiture, Comment fonctionne l'embrayage, Comment l'accélérateur augmente la vitesse, Comment le trou de clé allume/de la voiture.
    d. Humain - Comment la voix est produite, Ce qui est à l'intérieur du corps, Comment la vue fonctionne, Comment l'ouïe fonctionne, Comment les émotions génèrent et en effet nous.

RÉSUMEZ tout ce dont vous avez besoin et ENCAPSULEZ tout ce dont vous n'avez pas besoin ;)

 11
Author: Sandeep Kumar, 2015-12-01 05:40:44

Le libellé de votre question est impair - Abstraction vs Encapsulation? Il devrait être - quelqu'un expliquer l'abstraction et d'encapsulation...

L'abstraction, c'est comprendre l'essence de la chose.

Un exemple du monde réel est l'art abstrait. Les artistes de ce style tentent de capturer/peindre l'essence de la chose qui lui permet encore d'être la chose. Ce frottis brun de 4 lignes capture l'essence de ce qu'est un taureau.

L'encapsulation est une boxe noire.

Une cellule le téléphone est un excellent exemple. Je ne sais pas comment le téléphone portable se connecte à un satellite, une tour ou un autre téléphone. Je n'ai aucune idée de la façon dont la putain de chose comprend mes pressions sur les touches ou comment elle prend 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 des travaux d'un téléphone intelligent moderne. Mais, je peux l'utiliser! Les téléphones ont des interfaces standard (oui-conception littérale et logicielle) qui permet à quelqu'un qui comprend les bases d'un à utiliser presque tous d'entre eux.

Comment les deux sont-ils liés?

L'abstraction et l'encapsulation sont les fondements de la pensée orientée objet et du design. Donc, dans notre exemple de téléphone portable. La notion de téléphone intelligent est une abstraction, dans laquelle certaines fonctionnalités et services sont encapsulés. L'iPhone et le Galaxy sont d'autres abstractions de l'abstraction de niveau supérieur. Votre iPhone physique ou Galaxy sont des exemples concrets de plusieurs couches d'abstractions qui contiennent fonctionnalités et services encapsulés.

 7
Author: mson, 2012-08-22 17:44:39

Abstraction Signifie que Nous nous concentrons sur les qualités essentielles de quelque chose plutôt que sur un exemple spécifique et que nous rejetons automatiquement ce qui est sans importance ou non pertinent.

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...

L'Encapsulation Signifie l'idée de capsulation ou d'entourer quelque chose non seulement pour garder le contenu ensemble mais aussi pour protéger et restreindre l'accès au formulaire sur le côté.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 accède à l'attribut de Solde et essaie de le modifier ,la tentative peut réussir s'il n'y a pas d'encapsulation.

 5
Author: Shan, 2014-12-01 18:25:11

L'encapsulation aide à adhérer au principe de responsabilité unique et l'abstraction aide à adhérer au Code à l'interface et non à l'implémentation.

Disons que j'ai une classe pour la Voiture : Classe de Fournisseur de Services et Classe de conducteur : Classe de Consommateur de Services.

Pour l'abstraction : nous définissons la classe abstraite pour CAR et définissons toutes les méthodes abstraites qu'elle contient , qui sont des fonctions disponibles dans la car comme : changeGear(), applyBrake().

Maintenant, la voiture réelle (Classe concrète, c'est-à-dire comme Mercedes, BMW implémentera ces méthodes à leur manière et résumera l'exécution et l'utilisateur final appliquera toujours la rupture et le changement de vitesse pour une instance de voiture en béton particulière et polymorphiquement l'exécution se produira comme défini dans la classe de béton.

Pour l'encapsulation : Disons maintenant que Mercedes propose une nouvelle fonctionnalité / technologie: Freinage antidérapant, tout en implémentant applyBrake (), il encapsulera cette fonctionnalité dans la méthode applyBrake () et fournira ainsi une cohésion et un service le consommateur aura toujours accès par la même méthode applyBrake () de l'objet car. Ainsi, l'encapsulation permet plus loin dans la même implémentation de classe concrète.

 3
Author: user3576978, 2015-02-17 21:32:29

L'encapsulation cache des informations.

L'abstraction cache les détails de la fonctionnalité.

L'encapsulation est effectuée en construisant la classe. L'abstraction est obtenue en créant des classes abstraites ou des interfaces au-dessus de votre classe.

Dans l'exemple donné dans la question, nous utilisons la classe pour ses fonctionnalités et nous ne nous soucions pas de la façon dont l'appareil y parvient. Nous pouvons donc dire que les détails du 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.-

 3
Author: Navin Israni, 2016-06-27 06:28:19

J'ai l'impression que l'encapsulation peut avoir plus de sens à discuter quand vous voyez COMMENT NE PAS FAIRE en 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 de voiture 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 incontrôlé à la vitesse de la voiture et à d'autres variables. Par encapsulation, la classe Car peut avoir un contrôle complet sur la façon dont les variables de données dans la classe car peuvent être modifier.

Toute entité concrète qui a un comportement est un exemple d'encapsulation. Le comportement est fourni en enveloppant quelque chose et en cachant quelque chose de client.In cas de mobile, il est signaux, puces, circuits, batterie et ainsi de suite.

Pour l'abstraction du même exemple - l'utilisateur normal peut dire que je suis d'accord avec tout ce que je peux utiliser pour passer des appels et recevoir des appels. Cette abstraction peut être substituée par n'importe quel mobile concret. Consultez Exemples d'abstraction.

 2
Author: Vishal Shukla, 2015-06-16 05:21:29

Permettez-moi de donner mes 2 cents d'un exemple réel-analogie proche de LUI.

Disons que vous avez un site d'abonnement, par exemple un site wordpress

Chaque utilisateur a un rôle, par exemple administrateur, abonné et ainsi de suite. De nombreux utilisateurs peuvent être des administrateurs, des abonnés, etc..

Si l'abstraction est ici reflète dans le fait que tout utilisateur avec le rôle d'administrateur peut faire un ensemble de choses, il n'est pas question que utilisateur spécifique c'est (c'est un exemple de abstraction).

Sur le d'autre part, les utilisateurs abonnés n'ont pas accès à certains paramètres du site, ainsi certains internes de l'application sont encapsulés pour les abonnés simples (ceci est un exemple de encapsulation)

Comme on peut le voir l'abstraction et l'encapsulation sont des concepts relatifs, ils s'appliquent par rapport à quelque chose de spécifique.

On peut suivre cette ligne de raisonnement et d'expliquer polymoprhism et héritage.

Par exemple, les utilisateurs super-admin pourrait faire toutes les choses que les utilisateurs admin pourraient faire, plus un peu plus. De plus, si les rôles d'administrateur obtiennent une mise à jour dans la fonctionnalité, les super-administrateurs obtiendront la même mise à jour. Ainsi, on peut voir ici un exemple d'héritage , en ce que les rôles super-administrateurshéritent de toutes les propriétés des rôles administrateurs et les étendent. Notez{[10] } que pour la plupart du site, les administrateurs sont interchangeables avec les super-administrateurs (ce qui signifie qu'un utilisateur super-administrateur peut facilement être utilisé à la place d'un utilisateur administrateur, mais pas vice-versa en général).

 1
Author: Nikos M., 2015-12-16 23:37:49

L'encapsulation est définie comme le processus consistant à enfermer un ou plusieurs détails du monde extérieur via un droit d'accès. Il dit combien d'accès devrait être donné à des détails particuliers. L'abstraction et l'encapsulation fonctionnent main dans la main car l'abstraction dit quels détails rendre visibles et l'encapsulation fournit le niveau de droit d'accès à ces détails visibles. c'est-à-dire qu'Il implémente le niveau d'abstraction souhaité.

Par exemple

Parler de Bluetooth que nous habituellement avoir dans notre mobile. Lorsque nous allumons le Bluetooth, je peux connecter un autre mobile mais je ne peux pas accéder aux autres fonctionnalités mobiles comme composer un numéro, accéder à la boîte de réception, etc. En effet, la fonctionnalité Bluetooth est donnée un certain niveau d'abstraction.

Un autre point est lorsque le mobile A est connecté au mobile B via Bluetooth alors que le mobile B est déjà connecté au mobile C, A n'est pas autorisé à connecter C via B. Ceci est dû à une restriction d'accessibilité.

 1
Author: Tufan Chand, 2016-01-10 16:19:23

Je suppose qu'une coquille d'œuf peut être considérée comme l'encapsulation et le contenu comme l'abstraction. Le shell protège les informations. Vous ne pouvez pas avoir le contenu d'un œuf sans coquille.,, LOL

 0
Author: Humberto, 2013-10-04 22:24:40

Si vous avez vu une machine TV importante, des connexions TV et un tube de couleur TV est caché à l'intérieur du boîtier TV qui n'est pas exposé pour les téléspectateurs comme nous et exposé uniquement les choses nécessaires d'un téléviseur comme les touches de chaîne TV, les touches de volume TV, l'interrupteur MARCHE/ARRÊT, l'interrupteurCela signifie que la machine de télévision, les connexions TV et le tube de couleur TV 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

Donc l'encapsulation signifie 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 une encapsulation et la partie exposée d'une classe agit comme une abstraction.

 0
Author: Biju kalanjoor, 2014-07-10 14:30:53

Il suffit de penser à Abstraction{[2] } comme cachant les détails du clavier et de l'écran d'affichage, Encapsulation comme cachant les circuits internes qui les lient.

 0
Author: user3757331, 2014-09-05 09:35:05

Abstration qui cache les détails internes au monde extérieur par exemple ,vous créez une classe(comme la calculatrice de la classe) mais pour une utilisation finale ,vous fournissez un objet de classe, Avec l'aide d'un objet, ils joueront et effectueront une opération, Il ne sait pas quel type de mécanisme utiliser en interne .Objet de classe sous forme abstraite .

L'encapsulation est la technique consistant à rendre les champs d'une classe privés et à fournir un accès aux champs via des méthodes publiques. Si un champ est déclaré privé, il personne en dehors de la classe ne peut y accéder, masquant ainsi les champs de la classe. Pour cette raison, l'encapsulation est également appelée masquage de données.Par exemple class calculator qui contient des méthodes privées getAdd, getMultiply .

La réponse ci-dessus de Mybe vous aidera à comprendre le concept .

 0
Author: Apurva, 2014-09-19 11:51:00

Abstraction

Il est utilisé pour gérer les complexités des OOPs. En utilisant cette propriété, nous pouvons fournir les caractéristiques essentielles d'un objet à l'utilisateur sans inclure ses explications de fond. 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 (son, ami). Ici, nous voyons l'abstraction à l'œuvre, c'est-à-dire que nous sommes moins préoccupés par le fonctionnement interne du mobile qui est responsable de l'envoi et réception du message

 0
Author: Akash Singh, 2015-06-25 16:48:45

Abstraction

Nous utilisons de nombreuses abstractions dans notre vie quotidienne.Considérez une voiture.La plupart d'entre nous ont une vision abstraite du fonctionnement d'une voiture.Nous savons comment interagir avec elle pour l'amener à faire ce que nous voulons qu'elle fasse: nous mettons de l'essence, tournons une clé, appuyons sur des pédales, etc. 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 leur fonctionnement.L'abstraction nous aide à obtenir à 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 doit évidemment connaître son interface, tout comme le conducteur d'une voiture peut utiliser le véhicule sans savoir comment fonctionne le moteur.

L'Encapsulation

Considérons un système bancaire.Le système bancaire a des propriétés telles que le numéro de compte,le type de compte,le solde ..etc. Si quelqu'un essaie de modifier l'équilibre de la compte, la tentative peut réussir s'il n'y a pas d'encapsulation. Par conséquent, l'encapsulation permet à la classe d'avoir un contrôle complet sur leurs propriétés.

 0
Author: Joby Wilson Mathews, 2017-03-15 13:19:50