为初学者解释的 OOPS 概念

已发表: 2022-12-20

计算机程序的作用是成功地将复杂的现实世界需求建模为计算机可理解的指令。 为实现这一点,几种编程范式适用于不同的哲学。 其中包括函数式编程、过程式编程、面向对象编程等。 这些范例根据它们的工作方式而有所不同,因此与语言无关。

在本文中,我们将深入研究面向对象编程。 在我们深入了解 OOPS 的复杂性之前,您应该牢记以下 Java 中的一些关键OOP 概念,因为它们是 OOPS 工作的四大支柱:

  • 抽象
  • 封装
  • 遗产
  • 多态性

我们将在本文的稍后阶段深入​​讨论这些OOP 概念但首先,让我们了解什么是面向对象编程。

目录

什么是面向对象编程?

在面向对象编程之前,函数式编程是占主导地位的编程范式。 C 和 COBOL 等语言遵循这种范式,因此使用这些语言编写的程序是一系列指令。 这些使用子例程或过程来保持源代码的模块化和可读性。 函数式编程范式更多地关注逻辑而不是数据,程序将结合数据和程序。

C++、C#、Java 等编程语言在 C 之后转向面向对象编程方法。OOP 优先考虑数据覆盖简单的基于逻辑的指令。 本质上,对象是您想要在程序中建模的任何东西。 它可以是任何东西。 如果现在听起来很模糊,坚持到最后,你就会明白我们的意思!

什么是类和对象?

面向对象编程适用于类和对象。 因此,了解这两个术语的含义以及它们之间的区别非常重要。 简而言之,将类视为帮助您在需要时创建对象的蓝图。

类的作用是定义各种属性和不同的行为。 因此,如果我们要在我们的程序中对车辆进行建模,我们将为该车辆创建一个类并保留诸如车轮数量、颜色、型号、年龄等属性; 而行为就像启动、加速、制动等。 如您所见,我们定义的属性和行为并不特定于一辆车。 它们本质上涵盖了不同车辆的不同行为和属性。 这样,当您想要实例化一个新的车辆对象时,您可以为每个相关车辆指定属性。 通过这种方式,类充当创建具有相同属性和行为的新对象的完美蓝图。

所以,这就是我们的 Class Vehicle 及其不同的属性和行为的样子。 请记住,我们使用 Java 的语法编写代码,但编程范例是语言中立的。

公共类车辆{

私有字符串_color;

私人诠释模型;

私有字符串_makeYear;

私有字符串_fuelType;

公共无效开始(){}

公共无效加速(){}

公共无效停止(){}

}

使用定义的类,我们可以创建具有不同属性但具有共同行为的各种对象。 例如:

对象 1
模型中音
燃料压缩天然气
制作2018
开始()

休息()

加速()

对象 2
模型旅行车R
燃料汽油
制作2017年
开始()

休息()

加速()

这样,面向对象编程中的类可以帮助您简化对现实世界复杂行为和系统的建模。 所有数据、属性和函数都绑定到任何类的对象。 这样,就无需保留任何全局数据。 这是过程编程和面向对象编程方法之间的重要区别。

有了基础知识,让我们深入了解面向对象编程的四大支柱:

获得世界顶尖大学的数据科学认证 学习行政 PG 课程、高级证书课程或硕士课程,以快速推进您的职业生涯。

抽象

抽象就是关注完成了什么,而不是如何执行任务。 抽象背后的整个想法是帮助构建独立的模块,这些模块可以相互交互而无需任何其他依赖。 这样,程序的维护也变得更容易和更易于管理。 通过抽象,OOP 尝试仅表示基本功能,而不考虑这些功能是如何实现的或系统内部是如何工作的。

Python中最重要的OOPS 概念之一背后的想法是,程序员需要只关注对当前模块直接重要的事情。 修改一个模块不应直接影响其他独立模块。 程序员只需要了解当前模块及其提供的内容。 不需要了解模块的后台工作就可以完成所需的工作; 因此,该信息被提取出来以获得最佳结果。

如果你把抽象的想法放在编程之外,你就会意识到抽象本质上无处不在。 我们每天打交道的对象都是在不同层次上从我们身上抽象出来的。 例如,我们不知道汽车制动器的内部结构是如何工作的,但是我们已经提供了一个踏板来施加制动,同时抽象出窗帘后面的机制。 这样,您就不必担心它是如何工作的; 你只需要踩下踏板。

封装

封装概念与前面的抽象概念密切相关。 本质上,封装就是提供问题的解决方案,而不需要最终用户完全理解问题的领域。 为此,封装将所有数据和行为绑定为一个单元。 这样,无论在何处实现抽象,最终用户都无法了解内部元素。

用户不能直接访问数据,而是在需要时使用公开的函数来访问数据。 通过隐藏对象的内部结构,OOPS 编程范例保护了模块的完整性,并且不允许用户将内部数据设置为不一致的状态。 如果不这样做,从长远来看,这可能会导致许多问题。 因此,通过这种方式,封装更多的是关于以一种防错的方式暴露复杂性,而不是完全隐藏复杂性。

遗产

继承是面向对象编程范式的另一个强大特性。 继承的作用是高效快速地将类安排和组织成层次结构,使这些类能够从位于层次结构之上的类继承行为和属性。 本质上,继承可以理解为一种“是一种关系”,这与我们在现实世界中谈论事物的方式非常相似。

例如,我们说“一只鹦鹉是一只鸟”。 这意味着鹦鹉是鸟类的对象,因此它从更广泛的类继承了一些属性和行为。 但是,如果我们说银行是银行账户,那将是不正确的。 这就是继承中层次结构的工作方式,它允许您定义稍后可以专门用于专门类的行为和实现。 请记住,继承不会向后起作用。 所以,父类永远不会从子类继承任何东西。 但是,子类从父类继承属性和行为,具体取决于这些属性和行为的性质(公共或私有)。 继承是重用程序的一种方式,可以帮助您使整个源代码更短且更易于理解。 但是您必须记住,如果不需要,您不应该在继承级别之后添加级别。

检查我们的美国 - 数据科学计划

数据科学和商业分析专业证书课程 数据科学理学硕士 数据科学理学硕士 数据科学高级证书课程
数据科学执行 PG 计划 Python 编程训练营 商业决策数据科学专业证书课程 数据科学高级课程

多态性

多态性是Python 和 Java 中许多重要的 OOPS 概念之一,它本质上负责处理任何可执行单元的许多不同可能实现以及在后台进行的所有细微差异,而用户不会意识到这些更改。 多态性使得计算机程序可以更容易地使用专门的对象进行扩展而没有任何困难。

例如,如果您想在纸上写一段文字——您可以使用钢笔、记号笔、蜡笔甚至铅笔。 您所需要的只是可以放在手中并帮助您在将其按在纸上时制作符号的东西。 因此,书写行为将帮助您在纸上制作符号,而您需要什么工具取决于您的选择。

从这个意义上说,继承是程序实现多态性的一种方式,其中方法的自定义实现覆盖了继承类中定义的行为。 此过程也称为运行时多态性或方法覆盖。 还有另一种形式的多态性,也称为方法重载。 在那一点上,继承根本没有出现。 在方法重载中,方法名称保持不变,而方法中的参数根据要执行的任务而有所不同。

综上所述

至此,我们结束了对Java 中 OOPS 概念的讨论 到目前为止讨论的内容奠定了您开始使用面向对象编程所需的所有基础,而无需担心任何事情。 您必须实施讨论并亲自尝试; 毕竟,编程就是要练习和坚持。

OOPS 的知识也将帮助您进行数据科学之旅,因为您将使用依赖于 OOPS 范例的 Python 等语言。 数据科学是一个蓬勃发展的领域,拥有适当技能和知识的人不乏机会。 查看我们与亚利桑那大学合作的 upGrad数据科学硕士学位,并有机会向行业专家学习,同时拥有强大的校友网络,这将在您的整个职业生涯中为您提供帮助。

OOPS的四个概念是什么?

OOPS的四个核心概念是抽象、封装、继承和多态。

类和对象有何不同?

类是要建模的现象的蓝图。 另一方面,对象是类的特定实例,它们从实例化它们的类中借用行为和属性。

OOPS 使用什么语言?

OOPS 是一种与语言无关的编程哲学。 您可以使用任何现代编程语言(如 C++、Java、Python、Ruby 等)处理 OOPS。