[C++学习日记]-09-类和对象

类和对象


对象

什么是对象

面向对象编程(Object Oriented Programming)是一种编程风格,旨在让思维编程更接近思考现实世界。

在编程世界里,对象是独立单元,每一个都有自己的身份,像真实世界那样,像苹果,马克杯等等,每一个都有独一无二的 identity (身份)。

有两个一模一样的水杯,但是他们仍然是分开的两个独立个体。

对象用属性来描述它们的特征。例如,一辆车可以是红色或蓝色,一个杯子可以是满的或空的,等等。

一个属性描述了一个对象的当前状态。

对象可以有多个属性(马克杯可以是空的,红色的和大的)。

对象的状态与其类型无关;比如:一个杯可能充满水,另一个杯可能是空的。

如何区分对象

在现实世界中,每个对象都以自己的方式行事。汽车是移动,电话是铃响,等等。这同样适用于对象。

所以对象的类型有三个维度表示,identity(标识),attributes(属性),behavior(行为)
在编程中,一个对象是独立的,有自己的身份(标识)。它与其他对象是分开的。

每个对象都有自己的属性,描述了它的当前状态。每个对象都展示自己的行为,这表明他们可以做什么。

在这里插入图片描述

在编程中,对象并不总是代表物理项目。

例如,一个编程对象可以代表日期,时间,银行账户。银行账户不是有形的;你看不见它或者触摸它,但它仍然是一个明确的对象 - 它有自己的身份,属性和行为。


什么是类

对象是使用类来创建的,而这些类实际上是 OOP(面向对象编程) 的焦点。

这个类描述了这个对象是什么,但是和对象本身是分开的。

换句话说,一个类可以被描述为一个对象的蓝图,描述或定义。

您可以使用相同的类作为创建多个不同对象的蓝图。

例如,为了创建新的建筑,建筑师创建了一个蓝图,作为实际建筑结构的基础。同样的蓝图可以用来创建多个建筑物。

编程以相同的方式工作。我们首先定义一个类,它成为创建对象的蓝图。

每个类都有一个名称,并描述了属性和行为。

在编程中,type 类型用于引用类名:我们正在创建一个特定类型的对象。

属性也被称为属性或数据。


方法

方法是类 行为 的另一个术语。一个方法基本上是一个属于一个类的函数。

方法类似于函数 - 它们是被调用的代码块,也可以执行操作并返回值。


一个类的例子

例如,如果我们正在创建一个银行项目,我们可以给我们的类以下特征:

名称:BankAccount

属性:accountNumber,余额: dateOpened

行为:open(), close(), deposit()

该类指定每个对象应具有已定义的属性和行为。但是,它没有指定实际的数据是什么;它只提供一个定义。

一旦我们编写了这个类,我们就可以继续创建基于这个类的对象。

每个对象被称为一个类的实例。创建对象的过程称为实例化。

每个对象都有自己的身份(标识),数据(属性)和行为。


声明一个类

用关键字 class 定义类。按照带有类名和类体的关键字,用一组大括号(花括号)括起来。

以下代码声明了一个名为 BankAccount 的类:

class BankAccount {
  public:
    void sayHi() {
      cout << "Hi,OOP" << endl;
    }
};

一个类的定义必须跟一个分号。在大括号内定义类的所有属性和行为(或成员)。
 
您还可以为类的成员定义访问说明符。
已经使用 public 关键字定义的成员可以从类外部访问,只要它在类对象范围内的任何位置。
你也可以指定一个类的成员为 private 或 protected 的。

下一步是实例化我们的 BankAccount 类的一个对象,就像我们定义一个类型的变量一样,区别在于我们的对象的类型是 BankAccount。

int main() 
{
  BankAccount icbc;
  icbc.sayHi();
}

//输出 Hi,OOP

我们的名为 icbc的对象已经拥有了所有类的成员。

在这里

  • icbc是一个对象,它属于BankAccount 类
  • 如果创建一个abc 那么它也是一个对象 它也属于BankAccount 类

注意用于访问和调用对象的方法的点分隔符 . (英文点符号)

我们必须在使用它之前声明一个类,就像我们对函数做的一样。


类和对象的关系

在生活中例如 猫科动物

我们可以划分一个猫科动物类

那么

家猫 属于 猫科动物

老虎也属于猫科动物

他们都是 对象 而且都属于 猫科动物

我们称 猫和老虎对象

猫科动物就是


小练习

1.请举例生活中常见的类和对象,并且说明他们的关系

2.创建一个猫科动物类,并且声明一个猫和一个老虎两个对象

如果你有兴趣的话,欢迎把你的答案在评论区中发表


上一节[C++学习日记]-08-函数

发布了14 篇原创文章 · 获赞 12 · 访问量 5839

猜你喜欢

转载自blog.csdn.net/qq_18604209/article/details/103995011