面向对象编程是一种计算机编程模型,它围绕对象或数据而不是逻辑和功能来组织软件设计。 封装和抽象是面向对象编程的两个基本概念。
抽象与封装
抽象和封装之间的主要区别在于抽象是一种 隐藏代码细节及其实现方式的过程。 另一方面,封装是隐藏数据并控制代码可见性的过程。 管理抽象的对象是封装的,而封装的对象不需要抽象。
抽象是隐藏不必要的数据并仅显示相关数据的过程。 它是面向对象编程的一个基本概念,它降低了代码的复杂性,同时增加了可读性。
封装是将数据成员与成员变量绑定在一起的过程。 它防止直接访问变量,从而保护隐私并降低代码的可见性。
抽象与封装对比表
比较参数 | 抽象化 | 封装 |
定义 | 这是一个隐藏不需要的数据,只显示相关数据的过程 | 它是一个将数据成员与成员变量绑定在一起的过程 |
相 | 这是一个设计层面的过程 | 这是一个实现级别的过程 |
它是如何实施的 | 可以通过java中的类和接口来实现 | 可以通过java中的类来实现。 通过提及访问说明符(例如 private、protected 或 public)来确保隐私 |
应用领域 | 它用于降低项目设计阶段的复杂性 | 它用于在实施阶段提供隐私和控制数据透明度 |
关键能力 | 它专注于类实例可以做什么 | 它有助于数据的绑定并保持数据的透明度 |
什么是抽象?
抽象是仅向用户显示相关数据的过程。 这是通过使用抽象类和接口的方法来实现的。 从更大的池中选择数据,然后创建相似类别的类。 它是面向对象编程的基本概念,可降低代码的复杂性。
为了实现抽象并仅显示相关数据,使用了访问说明符。 它有助于制定高级代码并限制代码重复。
通过仅向用户展示相关且有价值的信息来维护应用程序的安全性。 程序或应用程序的功能可以更改或更新,不会给最终用户带来任何问题。
通常抽象类和抽象被认为是相同的。然而,抽象类和抽象过程是不同的。抽象类被制定为在子类或子类中使用它们。同时,抽象是通过访问说明符仅显示必要数据的过程。
在设计或规划阶段以及用户界面交互期间,将审查和纠正可能由程序引起的问题。 抽象类和接口的方法用于隐藏实现障碍。 将代码中需要进一步抽象的对象进行封装。 抽象的过程围绕着代码功能的知识而不是逻辑的应用。
什么是封装?
封装是将数据和对其进行操作的代码处理为单个单元。 单个单元包含与数据执行的相同功能,称为类。 封装的使用使应用程序更易于使用和理解。 用户对代码进行操作,不需要代码的内部机制。
访问修饰符可以控制向公众或某些人提供数据访问权限的选择。 在此过程中,数据像保险箱一样受到限制和保护,因此不会被篡改。
封装可能与抽象相混淆。 然而,它在安全性方面更具体地隐藏数据。 它在最后一级通过 getter 和 setter 方法实现。 获得访问权限的人可以通过此方法查看并更改私有成员的值。
根据提供的访问范围,数据成员分为公共、私有或受保护。 编译器默认将所有数据成员和函数设为私有。 但是,这可以使用访问修饰符进行更改。
抽象和封装之间的主要区别
- 抽象是隐藏不必要的数据并仅显示相关数据的过程。 另一方面,封装是将数据成员与成员变量绑定在一起的过程。
- 抽象是一个设计级的过程。 另一方面,封装是一个实现级的过程。
- Java中的抽象可以通过类和接口来实现。 另一方面,封装可以通过Java中的类来实现。 通过提及访问说明符(例如 private、protected 或 public)来确保隐私。
- 抽象用于降低项目设计阶段的复杂性。 另一方面,封装在实现阶段提供隐私和控制数据透明度。
- 抽象关注类实例可以做什么。 另一方面,封装有助于绑定数据并保持数据的透明度。
结论
在数据抽象过程中,只有必要的信息或数据对用户可见,而在封装过程中,数据被转换为单个单元。 这种执行相同功能的单一数据单元称为类。 相似类别的类是通过从大量数据库中选择数据来创建的。
抽象帮助用户制定高级代码。 它有助于提高数据对用户的透明度,并最大限度地减少代码重复。 该过程还增加了数据的可读性并降低了复杂性。
封装的过程有助于用户理解代码并轻松使用它。 当提供相似的数据组时,通过封装为相同的数据类型创建类。 该类可以控制数据函数的可见性。