类和对象的简单认识
对象就是实体或者说用眼睛看到的东西(人,车,电脑,电视等)
抽象是指对一个事物复杂认知的过程
类就是将抽象的结果用面向对象的语言翻译出来
1.面向过程和面向对象的初步认识
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题
C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成
2.类的引入
C语言结构体中只能定义变量,在C++中,结构体不仅可以定义变量,也可以定义函数
3.类的定义
类中的内容就是在对对象进行描述
class classNmae
{
//类体:由成员函数和成员变量组成
};//注意后面的分号
其中class为定义类的关键字,className为类的名字,{ }中为类的主体。
类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。
类的定义方式
1.声明和定义全部放在类体中,注意:成员函数如果在类中定义,编译器可能会将其当作内联函数处理
//日期
class Date
{
public:
void print()
{
cout << _year << " " << _month << " " << _day << " " << endl;
}
private:
int _year;//年
int _month;//月
int _day;//日
};
2.声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::
成员变量命名规则建议:
class Date
{
public:
void Init(int year)
{
year = year;//这里year到底是成员变量还是函数形参?
}
private:
int year;
};
//所以一般建议加个前缀或者后缀标识区分
clss Date
{
public:
void Init(int year)
{
_year = year;
}
private:
int _year;
};
4.类的访问限定符及封装
4.1访问限定符
1. public修饰的成员在类外可以直接被访问
2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
4. 如果后面没有访问限定符,作用域就到 } 即类结束。
5. class的默认访问权限为private,struct为public(因为struct要兼容C)
封装
面向对象的三大特性:封装、继承、多态。
在类和对象阶段,主要是研究类的封装特性,那什么是封装呢?
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和
对象进行交互。
在C++语言中实现封装,可以通过类将数据以及操作数据的方法进行有机结合,通过访问权限来隐
藏对象内 部实现细节,控制哪些方法可以在类外部直接被使用。