封装VS抽象现实世界的例子(encapsulation vs abstraction real wo

2019-06-27 06:42发布

用于封装的一个例子我能想到在用户和移动电话之间的相互作用。 用户并不需要知道手机来操作的内部工作,所以这就是所谓的抽象。 但是,在没有封装适合在这个例子吗? 可能有人请阐明这一些轻?

Answer 1:

封装是一种能够实现“信息隐藏”所以,下面你的榜样,你不“需要知道手机来操作的内部工作”的程度。 您必须使用该设备的行为不知道实现细节的接口

在另一侧上的抽象 ,可以作为用于不同的对象相同的接口的能力来说明。 可以存在相同的接口的不同实现。 细节由封装隐藏。



Answer 2:

抽象 :你永远也不会买的“装置”,但总是买一些更具体:iPhone,GSII,诺基亚3310 ...在这里,iPhone,GSII和N3310是具体事物,设备是抽象的。

封装 :你有几个设备,所有的人都得到了一个USB端口。 你不知道什么样的印刷电路有回来了,你只需要知道你就可以将USB电缆插入它。

抽象是一个概念,它是由封装允许的。 我的例子是不是最好的一个(有两个块之间没有真正的联系)。

你可以做封装不使用抽象的,但如果你想用在你的项目的一些抽象的,你需要封装。



Answer 3:

在一般的话,抽象只是隐藏复杂的事情的特定过程背后使程序看起来很简单。
例如: 监控ON / OFF :: -用户并不需要知道很多关于所有的芯片功能发生这种情况时,监控器被接通或OFF..All他需要知道的是,在功能ON-Monitor是上和功能OFF-显示屏关闭...

或更好的寻找一个汽车 - 大家都知道,有一个特殊的齿轮机床从而改变了齿轮,没有人刻意去了解所有的功能进行了齿轮change..So,这是抽象(避免不必要的实现,以避免复杂性)。

因此,如果开发人员提供了一个很好的抽象,用户会不动心处对象的内部机制来偷看。

抽象是通过使具有抽象的一个或多个方法的类抽象实现。 这是什么,但应该通过扩展它的类来实现本质特征。 eg当你发明了/设计定义喜欢的车的特点应该有4个门,休息,方向盘等汽车...所以任何人使用这个设计应该包括这个特性。 实现并不是每个抽象的头。 它只是将其定义应包括特征。

封装是制约用户遵循特定程序访问特定process.It的控制只是提供安全,保证了系统的鲁棒性。

例如:我们可以考虑在公司的人力资源作为对封装的原理工作的人.ie我们不能说直接等部门,我们需要通过他们通过HR.This保证了安全性和更好的维护公司的记录进行沟通。

我们可以一起采取例如的UNDER CONSTRUCTION BUILDING..在这里我们可以说的东西像“没有。 经理人的要求,材料的类型,没有工人等作为抽象的,因为他们需要在那里每一个建筑施工。

但是,与此同时,每一个这样的领域纳入其充当工人和建筑投资人之间的调停承包商可以作为封装看在。 如,它隐藏了所有上述特性成一个实体。

因此,如果你会理解到现在为止,你可以说,抽象只是ENCAPSULATION.ieEvery实体的一个子集进行抽象封装内部但每次显示封装不必总是抽象的东西。

.ToString()几乎在每一个类中定义的方法是实施Abstraction ,因为我们这样做不是functionaltiy内,我们关心的是,它几乎改变了一切,string.And因为它装配ASA单元,它被封装too..But ,我们躲的私有成员,并通过访问Properties仅仅是因为它是基本做到了保持数据的安全性mindd封装的例子.. !!

希望这回答了你的问题.. !!



Answer 4:

封装是隐藏类中的变量或东西,防止未经授权的第三方使用。 因此,像getter和setter来访问它和其他类的公共方法调用这些方法来访问

抽象涉及设施定义代表抽象的“演员”,可以在执行工作中,报告而改变自己的状态,而“沟通”与系统中的其他对象的对象。

考虑下面的实时例如:

封装作为司机,你知道如何通过按下开始按钮和开始运营的内部细节隐藏你启动汽车。 所以整个起动过程瞒过你,否则我们可以告诉开始操作从你封装。

要么

驱动轮被封装从你旋转轮的过程

抽象

提关于抽象什么之前,我们可以采取三种不同的用户在这里(我称他们为实体)

1)您2)当地技工3)专家

您实体:既然你只知道按下一个按钮台前幕后的所有其他业务启动汽车从你抽象。

当地技工实体:我们当地的机修工知道一些启动汽车实施的,即他可以打开汽车的引擎盖,检查蓄电池连接线或轴承座等,因此,在短期当地技工实体知道一些汽车的实现。

专家实体:由于我们的专家(汽车设计师)机修工知道我们的赛车的所有操作,他可以很快修复它。 因此,在短期专家实体知道汽车的所有实现。

这款车的操作是完全从你提取并已部分实现到当地技工实体,全面实施专家实体。 所以你只有抽象方法的抽象类,当地技工实体已经扩展你(因为他也是一个普通的用户),他实施了一些方法,并持续我们的专业实体延伸当地技工和实现所有方法

我觉得这是一个很好的例子。



Answer 5:

任何事物都有许多属性和行为,以便采取任何对象,你想要的电视,手机,汽车,人或任何东西。

抽象:

  1. 选择一个对象,你真正需要的精髓的过程
  2. 换句话说,接你从对象实例需要的属性:
    一个。 电视 - 声音,视觉效果,电源输入,通道输入。
    手机 - 按钮/触摸屏,电源键,音量键,SIM卡接口。
    C。 汽车 - 转向,休息,离合器,油门,钥匙孔。
    d。 人类 - 声音,肢体,视力,听力,情绪。

封装:

  1. 隐藏的对象,你不需要细节的过程
  2. 换句话说,隐藏不从对象的需要,但所需要的对象正常工作例的属性和操作:
    一个。 电视 - 内部和扬声器,显示器,电源分配的B / W组分,通道机构的连接。
    手机 - 如何输入被分析和处理,如何按下/按钮关闭或改变卷,如何将SIM卡连接到服务提供商。
    C。 汽车 - 如何转弯转向变成了车,如何打破缓慢或停止的汽车,如何离合器厂,加速器如何增加移动速度,对汽车/如何钥匙孔开关。
    d。 人类 - 声音是如何产生的,身体,视力是如何工作的,听觉的工作原理,情绪如何产生并影响我们里面有什么。

你需要和封装你并不需要的一切的一切摘要)



Answer 6:

你的问题的措辞是奇 - 抽象VS封装? 它应该是 - 有人解释抽象和封装...

抽象理解事物的本质。

一个真实的例子是抽象艺术。 这种风格的艺术家尝试捕捉/漆仍然允许它是事物的事物的本质。 这褐色的4行涂片捕获的牛有什么本质。

封装是黑拳。

一部手机是一个很好的例子。 我不知道手机如何连接到卫星,塔,或其他电话。 我不知道这该死的东西如何理解我的按键或者它是如何将发送图片电子邮件地址或其他电话号码。 我不知道的是如何最现代化的智能手机作品的复杂细节的想法。 但是,我可以用它! 该手机具有标准接口(是的 - 无论是文字和软件设计),让别人谁知道一个基本使用几乎所有的人。

怎么是两个相关的?

无论抽象和封装的底层面向对象思想和设计的基础。 所以,在我们的手机的例子。 智能手机的概念是一个抽象的,在其中某些功能和服务封装。 而iPhone和Galaxy是更高层次的抽象的进一步抽象。 你的身体iPhone或银河是包含封装的功能和服务抽象的多层次的具体例子。



Answer 7:

抽象意味着我们专注于某些事情,而不是一个具体的例子必备素质,我们自动放弃什么是不重要的或无关紧要的。

例如我们正在编写一个银行账户类,银行账户的基本素质都开业至今,账户名称,账号,余额等等...

封装器件封装的想法或周围的一些事情不只是内容保持在一起,还能保护和限制访问的形式进行side.Along与保密这是关于减少应用程序的不同部分之间的依赖关系。

例如在我们的银行账户类有人访问平衡的属性,并试图去改变它,尝试可以成功,如果没有封装。



Answer 8:

封装有助于在秉承单一职责原则和抽象有助于秉承代码交互,而不是执行。

说我对汽车类:服务提供商级和驱动程序类:服务消费阶层。

对于抽象:我们定义抽象类汽车和定义在它所有的抽象方法,这是在车上像可用的功能:)changeGear(),applyBrake(。

现在汽车的实际(即像奔驰混凝土级,宝马会以自己的方式实现这些方法和抽象的执行和最终用户仍将适用休息和变速齿轮对特定的具体汽车实例和多态在具体的类定义的执行会发生。

对于封装:现在说奔驰想出了新功能/技术:防滑刹车,而执行applyBrake(),它将封装在applyBrake()方法此功能,因此提供凝聚力,服务消费者将通过同样的方法applyBrake仍然访问()的汽车对象的。 因此封装允许进一步同具体类实现。



Answer 9:

封装是隐藏的信息。

抽象是隐藏功能的详细信息。

封装是通过构造类执行。 抽象是通过对类的顶部创建或者抽象类或接口实现的。

在这个问题给出的例子中,我们使用的是其功能的类,我们不关心设备如何实现这一点。 所以我们可以说手机的细节是从我们“抽象”。

封装是躲在什么手机用以实现无论它; 抽象是隐藏它是如何it.-



Answer 10:

我觉得封装可能更有意义,当你看到如何不编程DO讨论。 例如,考虑下面一个Car类。

 class Car{
   public float speed =0;
   public boolean isReverse = false;
   public boolean isStarted = false;
 }

客户端代码可以使用上面的汽车类,如下。

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

多见于: http://brevitaz.com/encapsulation-example-benefits-java/

这是汽车的速度和其他变量不受控制的访问。 通过封装,汽车类可以在如何Car类中的数据变量可以被修改的完全控制。

有一些行为的任何具体的实体是例如封装。 该行为是由结束了的东西,并从移动的情况下client.In隐藏着什么提供,它是信号,芯片,电路,电池等。

对于同样的例子的抽象 - 普通用户可能会说我是OK使用,我可以拨打电话和接听电话什么。 这种抽象可以通过任何具体移动被取代。 检查出抽象的例子 。



Answer 11:

让我给我2真实世界的例子类比接近它的美分。

比方说你有一个订阅网站,如WordPress站点

每个用户都有一个角色,如管理员,用户等。 许多用户可以管理员,用户等。

所以这里的抽象反映一个事实,即admin角色的任何用户都可以做一套东西,它并不重要的特定的用户,这是 (这是抽象的例子)。

在另一方面,订户用户没有访问该网站的某些设置,因此,应用程序的某些内部构件被封装为纯订户 (这是封装的一个例子)

正如人们所看到的抽象和封装是相对的概念,它们适用相对于一些具体的事情。

可以遵循这样的原则,并解释polymoprhism继承

例如超级管理员用户可以做的所有事情管理员用户可以做,再加上更多一些。 此外,如果管理角色获得功能的更新,超级管理员会得到相同的更新。 因此,人们可以在这里看到继承的例子,在超级管理员的角色继承管理角色的所有属性和扩展它们。 请注意 ,该网站的大部分,管理员与超级管理员互换(意为超级管理员用户可以方便地在一个地方管理用户的使用,但不能反过来一般)。



Answer 12:

我想一个鸡蛋壳可以考虑封装和内容的抽象。 外壳保护的信息。 你不能有一个蛋的内容没有外壳。,, LOL



Answer 13:

如果你已经看到重要的电视机,电视连接,电视彩管隐藏未暴露于像我们这样的观众和仅露出像电视频道键,电视音量键电视的neccessary事物的电视机箱内部,ON / OFF开关,有线开关和观众使用it.This电视遥控器装置TV机,电视连接和电视彩色管是不想要的数据和不需要观众看到的是来自外部世界的隐藏

所以,封装是指隐藏着不被需要的一类和揭露一类只需要外面的事情被曝光一类的重要特征。 一类在这里隐藏的部分就像封装和一类的行为像抽象暴露的部分。



Answer 14:

试想抽象为隐藏的键盘和显示屏的详细信息,如封装隐藏结合他们的内部电路。



Answer 15:

Abstration其中隐藏内部细节,外界比如你创建一个类(如计算器之类的一个),但最终使用您提供一流的对象,随着对象的帮助下,他们将发挥和执行的操作,他简化版,知道发生了什么机构的类型以摘要形式使用类的内部.Object。

封装是一类私人制作领域,并通过公共方式提供接入领域的技术。 如果某个字段声明为private,它不能由类以外的任何人访问,从而隐藏了类中的字段。 出于这个原因,封装也被称为包含私有方法getAdd,getMultiply数据hiding.For示例类计算器。

Mybe上面的回答将帮助你理解这个概念。



Answer 16:

抽象化

它用于管理OOPS的复杂性。 利用这一性质,我们可以提供一个对象,以用户的基本特征,而不包括其背景说明。 例如,发送消息给朋友,我们只是写邮件时,说“hiiii”,然后按“发送”,消息传递到其目的地(她,朋友)。 在这里,我们看到抽象的工作,即我们与移动是负责发送和接收消息的内部工作不太关注



Answer 17:

抽象化

我们使用在我们日常的一天lives.Consider我们的car.Most许多抽象对汽车works.We怎么知道如何互动与它得到它做什么,我们希望它做一个抽象的观点:我们放气,转动钥匙,按一定踏板,等等。 但是,我们并不一定明白是怎么回事了车内让它动,我们也不需要。 数以百万计的美国日常使用的汽车,而不理解他们work.Abstraction如何帮助我们的细节去上学或上班!

程序可被设计为一组相互作用的抽象。 在Java中,这些抽象在班抓获。 一类的创建者obviusly必须知道它的接口,就像一辆车的驾驶员可以使用车辆不知道引擎是如何工作的。

封装

考虑一个银行system.Banking系统具有的属性,如帐户没有,帐户类型,平衡...等。 如果有人试图更改帐户的余额,尝试可以成功,如果没有封装。 因此封装允许类,以便对他们的性能完全控制。



文章来源: encapsulation vs abstraction real world example