类和对象
对象
什么是对象
面向对象编程(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.创建一个猫科动物类,并且声明一个猫和一个老虎两个对象
如果你有兴趣的话,欢迎把你的答案在评论区中发表