Java中的封装与抽象– OOPS概念

时间:2020-01-09 10:34:45  来源:igfitidea点击:

抽象和封装都是OOPS概念,这是这两个术语之间的相似之处之一,另一个是在谈论封装和抽象时我们会听到"隐藏"一词,但这就是相似之处的终点。这两个概念都有自己的特定目的,彼此之间有很大的不同,这就是本文中Java的封装与抽象之间的区别的主题。

Java中的封装与抽象

  • 封装是关于将数据和作用于该数据的方法保持在一起。重点更多地放在数据的安全性上,这就是为什么封装是一种数据隐藏机制。抽象意味着隐藏实现细节,仅向用户公开基本功能。这里的重点更多是隐藏复杂性,并向用户提供足够的信息,以使其知道如何使用该功能,而又不知道其实际实现方式。
  • Java类是通过将数据及其包装的方法保留在类中而构成Java封装的构建块。通过使用访问修饰符可实现封装-公共,私有,受保护和默认(程序包私有)。通过使用适当的修饰符来限制访问,可以避免外部实体的任何意外或者故意滥用。 Java中的抽象是通过接口和抽象类实现的。接口和抽象类具有抽象方法,这些抽象方法仅告诉用户可以访问的方法,但如何实现却被隐藏。实现接口或者扩展抽象类的不同类可以提供抽象方法的不同实现,但是用户可以通过调用相同方法来访问任何实现。
  • 封装通过将更改保存在一个地方来简化代码的维护,从而有助于管理代码。封装提倡"封装变化的设计原则"。抽象为类提供了一个契约,即如何在不实际提供方法应该做什么的情况下访问类方法。抽象提倡设计原则"程序到接口,而不是实现"。
  • 抽象将更多的精力放在代码的工作上,而不是代码的工作方式上。封装更加关注对象的行为方式,但是通过限制访问来隐藏对象的内部细节。