第五课
1,面向过程
步骤化:是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用;
2,面向对象
行为化:面向对象是吧整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为;
3,类
类:是具有相似属性和行为的一组实例集合;
4,对象
对象,即类的实例,各种各样的事物;
5,面向对象四大特征
抽象:指对具体问题(对象)进行概括,抽出一类对象的公共属性和行为并加以描述的过程;
封装:是把每个对象的数据(属性)和操作(行为)包装在一个类中,一旦定义了对象的属性和行为,则必须决定哪些属性和行为只用于表示内部状态,哪些属性和行为在外部是可见的,封装保证了模块具有较好的独立性,使得程序维护修改较为容易;
继承:指一个新类可以从现有的类派生而来,新类继承了现有类的特性,包括一些属性和行为,并且可以修改或增加新的属性和行为,使之适合具体的需要,继承为了重用父类代码,同时为实现多态性做准备;
多态:指类中具有相似功能的同名函数,并根据不同类的对象对同一消息产生的不同行为;
6,类的声明和对象的定义
一 struct、
·在C语言中的struct内,只能包含成员变量,而不能包含成员函数,但是在C++中是可以的;
·C++类将对象的属性抽象为数据成员,将对象的行为抽象为成员函数,并对它们进行封装,数据成员又称成员变量,成员函数又称为方法;
·C++类在形式上类似于C语言中用户自定义的结构类型,但定义类时规定了成员的访问控制权限,对象只能访问所属类的公有成员,而类的私有成员只能在类的成员函数中被访问;
事例:
#include<iostream>
using namespace std;
struct Person//类
{
int m_age;
string m_name;
void SetAll(int age, string name)//初始化
{
m_age = age;
m_name = name;
}
int GetAge()//获取成员变量
{
return m_age;
}
string GetNmae()//获取成员变量
{
return m_name;
}
};
int main()
{
Person lige;
lige.SetAll(99, "ligeg");
cout << lige.GetAge() << " " << lige.GetNmae() << endl;
return 0;
}
二 class :
类的定义由class开始,其后为用户定义的类名,花括号括起来的部分称为类体(与结构体类似);
三个访问权限限定符,用来设置成员变量和成员函数的访问属性;
·private :表示成员变量和成员函数是类的私有成员,它们只允许被本类的成员函数访问,数据成员一般定义为private属性;
·public :表示成员变量和成员函数是类的公有成员,它们允许被本类或其它类的成员函数(通过对象)访问或调用,是类的外部接口,成员函数一般定义为public属性;
·protected :表示数据成员和成员函数是类的保护成员,它们允许被本类的成员函数和派生类的成员函数访问或调用;
7,类的声明和成员函数定义分离
·一般将类发定义放在头文件中,类的实现在放在源文件中,而主函数可以放在另一个源文件中;
分离:即把函数的定义放在类的外部实现;
·成员函数的定义方式与其他函数的定义方式基本相同,但必须在成员函数名前面加上类名和作用域限定符;
class Harem
{
public:
//声明:
void SetAll(int age,string name);
int GetAge();
string GetName();
private:
int m_age;
string m_name;
};
//实现:
void Harem::SetAll(int age,string name)
{
m_age=age;
m_name=name;
}
int GetAge()
{
return m_age;
}
string GetName()
{
return m_name;
}