📜  面向对象编程介绍

📅  最后修改于: 2022-05-13 01:55:13.373000             🧑  作者: Mango

面向对象编程介绍

顾名思义,面向对象编程或 OOP 是指在编程中使用对象的语言。面向对象编程旨在在编程中实现继承、隐藏、多态等现实世界的实体。 OOP 的主要目的是将数据和对它们进行操作的函数绑定在一起,这样代码的其他部分就不能访问这些数据,除了那个函数。

OOP 概念:

  • 班级
  • 对象
  • 数据抽象
  • 封装
  • 遗产
  • 多态性
  • 动态绑定
  • 消息传递

1.类:

类是用户定义的数据类型。它由数据成员和成员函数组成,可以通过创建该类的实例来访问和使用。它表示一种类型的所有对象共有的一组属性或方法。一个类就像一个对象的蓝图。

例如:考虑汽车类别。可能有许多具有不同名称和品牌的汽车,但它们都有一些共同的属性,例如它们都有 4 个轮子、限速、里程范围等。所以这里,Car 是类而轮子、限速、里程是他们的属性。

2.对象:

它是面向对象编程的基本单元,代表现实生活中的实体。对象是类的实例。当一个类被定义时,没有分配内存,但是当它被实例化(即创建一个对象)时,内存被分配。对象具有身份、状态和行为。每个对象都包含数据和操作数据的代码。对象可以交互而不必知道彼此的数据或代码的详细信息,知道接受的消息类型和对象返回的响应类型就足够了。

例如,“狗”是一个现实生活中的对象,它具有一些特征,如颜色、品种、树皮、睡眠和饮食。

OOP 中的对象

目的

3.数据抽象:

数据抽象是面向对象编程最本质和最重要的特征之一。数据抽象是指只向外界提供数据的基本信息,隐藏背景细节或实现。考虑一个男人开车的真实例子。男人只知道踩油门会提高车速或踩刹车会停车,但不知道踩油门时速度是如何提高的,他不知道汽车的内部机制或在车内实施油门、刹车等。这就是抽象。

4、封装:

封装被定义为将数据包装在一个单元中。它是将代码和它操作的数据绑定在一起的机制。在封装中,一个类的变量或数据对任何其他类都是隐藏的,只能通过声明它们的类的任何成员函数来访问。与封装一样,一个类中的数据对其他类是隐藏的,因此也称为数据隐藏

面向对象编程中的封装

考虑一个真实的封装示例,在公司中,有不同的部分,如账户部分、财务部分、销售部分等。财务部分处理所有财务交易并记录与财务相关的所有数据。同样,销售部分处理所有与销售相关的活动并保存所有销售记录。现在可能会出现一种情况,财务部门的官员出于某种原因需要有关特定月份的所有销售数据。在这种情况下,不允许他直接访问销售部分的数据。他首先必须联系销售部门的其他官员,然后要求他提供具体数据。这就是封装。在这里,销售部门的数据和可以操作它们的员工被包装在一个单一的名称“销售部门”下。

5.继承:

继承是OOP(面向对象编程)的重要支柱。一个类从另一个类派生属性和特征的能力称为继承。当我们编写一个类时,我们从其他类继承属性。因此,当我们创建一个类时,我们不需要一次又一次地编写所有属性和函数,因为这些可以从另一个拥有它的类继承。继承允许用户尽可能重用代码并减少其冗余。

面向对象编程中的交互性

6、多态性:

多态性一词意味着具有多种形式。简单来说,我们可以将多态性定义为消息以多种形式显示的能力。例如,一个人可以同时具有不同的特征。就像一个男人同时是父亲、丈夫、雇员。所以同一个人在不同的情况下会有不同的行为。这称为多态性。

OOP 中的多态性

7.动态绑定:

在动态绑定中,响应函数调用而执行的代码是在运行时决定的。动态绑定意味着与给定过程调用关联的代码在运行时调用之前是未知的。动态方法绑定 继承的主要优点之一是某些派生类 D 具有其基类 B 的所有成员。一旦 D 不隐藏 B 的任何公共成员,则 D 的对象可以在任何上下文中表示 B可以使用 B 的地方。这个特征被称为亚型多态性。

8. 消息传递:

它是面向对象编程和并行编程中使用的一种通信形式。对象通过相互发送和接收信息来相互通信。对象的消息是执行过程的请求,因此将调用接收对象中生成所需结果的函数。消息传递涉及指定对象的名称、函数的名称和要发送的信息。