我知道这个问题在互联网上被多次询问,但这里的例子不同,令我感到困惑, 我在面试中被问到一个关于封装和抽象的问题,以及t.v和远程或空调和远程的真实例子,面试官问这个例子是封装,哪个是抽象。 可以有人描述这个问题吗?
答案 0 :(得分:-1)
封装的简单定义:
- 将数据和方法包装到一个单元(称为类)中称为Encapsulation。
- 外部世界无法访问数据,只有包含在类中的方法才能访问它。
- 这些方法提供了对象数据和程序之间的接口。
- 这种数据与程序直接访问的绝缘称为数据隐藏。
- 封装可以将对象视为黑匣子,每个对象执行特定任务而无需担心内部实施。
我想现在你可以从我提到的最后一点了解电视示例的封装。
我对你的例子的定义是:
电视的功能对您来说是隐藏的,但电视制造商为您提供了一个远程控制器,用于与电视进行交互/或一些操作,提供高水平的抽象。因此,您甚至不知道信号是如何从天线传来的,并转换成图像显示在屏幕上,然后才能观看电视。
你可以看到电视屏幕,按钮,插件等等。但你看不到电路,颜色枪等(这些都是数据隐藏)。
更具体地说:
根据您的示例,两个设备中的封装因为两者都提供了与之交互的接口。例如,
powerOn()
按钮。但是你不知道当你按下电视或遥控器上的按钮时电源会如何开启("数据隐藏")。
powerOn()
按钮它是另一个词的抽象遥控器具有使用电视接口的功能,而细节则被封装隐藏。