oop
我们知道c语言是一门面向过程的语言,而c++是一门面向对象的语言。那oop思想其实就是一种面向对象语言的思想
我们在弄清楚oop语言之前,首先要了解计算机语言设计的目的和意义是什么?通俗的来讲,就是模拟世界。
在现实世界中,我们对一个实体因该怎样称呼?我们可以对一只活蹦乱跳的动物叫它兔子,那么这个兔子就是一个实体。那应该怎样取描述这个实体呢?一般描述一个实体,我们会从两个方面去描述:属性和行为。我们可以对它的颜色进行描述,它的毛发是白色的;也可以从它的行为去描述,它会跳,会吃定西。
我们也可以把兔子叫成rabbit,对于色盲来说,他可能比看不到我们所说的红色,但是这个色盲就认为我们所指的这种颜色就是红色,我们称之为ADT(抽象数据类型)。
其实现实中的ADT就是计算机世界中的’类‘,现实中的实体就是计算机世界中的对象。在现实世界的属性和行为转换到计算机世界中就是我们所说的成员方法和成员变量。那么类转化为对象的过程我们称它为实例化。我们可以通过一个图片来了解它:
我们通过一个代码来了解它:
class:类标识
class people
{
people(int age, std::string sex,std::string name)//成员方法
:mage(age),msex(sex),mname(name)
{}
int mage;//成员变量
std::string msex;//成员变量
std::string mname;//成员变量
};
封装性
封装是什么意思?封装就是把属性和行为实现保护起来,通过公共的接口来操作属性
访问限定符:
public:任意访问
protected:本类类和子类类
private:只允许本类
限定范围:从设置点起,到类结束或者遇到下一个访问限定符为止
类默认的访问限定符:private如果设置访问限定符全部为私有
#include <iostream>
class people
{
public:
people(int age, std::string sex,std::string name)
:mage(age),msex(sex),mname(name)
{}
private:
int mage;
std::string msex;
std::string mname;
};
int main()
{
people p1(17,"男","张三");//实例化一个对象p1
std::cout <<"this people's name is:" <<p1.mname <<std::endl;
std::cout << "this people's sex is:" << p1.msex << std::endl;
std::cout << "this people's age is:" << p1.mage << std::endl;
return 0;
}