对”对象和类“的理解
2. 定义
对象(Object),是指面向对象程序设计时放置数据和作用于这些数据的操作的单一的实体。
相同类型的对象用一个通用的
类(Class)来定义,一个类是一个模板,定义了对象有什么属性和方法。一个对象就是类的一个实例。术语“对象”和“实例”常可以交换。
对象的状态用属性(或数据域)及它们的当前值来表示,实际编程时属性可以认为是对象中定义的变量及其当前值(我自己这么认为);对象的行为用方法来表示,实际编程时可以认为方法就是一个个的函数(我这么认为)。
3. 举例说明
举个例子,圆是一个类,圆1和圆2是两个对象,它们都有半径和圆心两个属性,都有计算面积和计算周长的两个方法。
类:圆
属性:半径R,圆心O
方法:计算圆的面积S,计算圆的周长L
对象1:圆1
属性:R1 = 10; O1 = (0,0);
方法:S1 = 3.14*R1*R1; L1 = 2*3.14*R1;
对象2:圆2
属性:R2 = 1; O2 = (0,2);
方法:S2 = 3.14*R2*R2; L2 = 2*3.14*R2;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <iostream> //--这是将iostream文件包含到本程序中
class Car{ //--这是定义一个“类”,名字叫做Car
public: //--public是访问控制的关键字,意思是包括这个类本身以及它的基类等等的任何代码都可以访问以下属性和方法
std::string color; //--这几个变量是类Cra的属性
std::string engine;
float gas_tank = 0.0;
unsigned int wheel;
void fill_tank(float liter); //--方法fill_tank()的声明,方法名是“fill_tank”,方法的参数是“liter”
void running(); //--方法running()的声明,方法名是“running”,本方法没有参数
}; //--这里不要忘记分号
//--方法fill_tank()的定义
void Car::fill_tank(float liter){
gas_tank += liter;
}
//方法running()的定义
void Car::fill_tank(float liter){
std::cout << "车正在上坡。。。" << std::endl;
}
//主函数。程序运行时都是从主函数开始的
int main(){
Car mycar1; //--将之前的Car实例化,得到mycar1这个对象
mycar1.fill_tank(85); //--操作对象macar1中的方法
return 0; //--主函数最好有一个返回值,如果程序进行到这里的话,就会有一个返回值0
}
这个例子中Car是一个类,它具有一些属性和方法。mycar1是一个对象,它是将Car类具体化(实例化)后的一个实例。