Possible Duplicate:
07000
我知道这个问题可能已经在这个论坛上被问了数千次,甚至网络也充满了关于这些概念的许多定义,但所有听起来相同,并且都使用相同的技术词。例如以下定义
封装是将对数据操作的数据和代码绑定或包装到单个实体中的过程。这保持数据安全从外部接口和误用。考虑封装的一种方式是作为保护性包装,以防止代码和数据被包装器之外定义的其他代码任意访问。
我从上面的定义中理解的是,创建变量,将它们标记为private并为这些变量生成getter-setter,并使用对象访问这些getter和setter。这样,数据就隐藏在对象内,只能通过对象访问。希望我是对的。
抽象是Java中抽象的过程,用于隐藏某些细节,只显示对象的本质特征。换句话说,它处理对象(接口)的外部视图。
现在这是让我困惑的部分。每当我想到抽象时,我想到的东西是抽象类(可能是因为两者都有抽象关键字)。上面的定义说,抽象意味着隐藏数据,只显示所需的细节,但这是我们已经在做封装的权利?那么有什么区别。另外我没有得到什么是对象的外侧视图在它处理对象的外部视图。
有人可以把更多的光在这与一些现实生活的例子或一些程序的例子,如果可能的话。