第3节课:9.3:面向对象,面向过程
一、面向过程
1.解决问题的思路:
提出问题–分析问题(把问题大化小,并且一步一步的来解决问题)–解决问题
从上往下,按照流水线的方式,逻辑清晰
2.优点:
1.程序较为简单,顺序 循环 选择三种基本结构就可以解决所有问题
2.从上往下,问题化成小问题逐步解决问题,使复杂问题简单化
3.要求我们从整体的角度先去分析问题,然后列出解决问题的步骤,可以全面的考虑问题,逻辑更加的清晰
//推箱子:
//1.游戏界面的初始化
//(1)墙壁,空地,箱子,成功点,人
//(2)每个元素的初始化细节:比如墙壁的范围,
//2.元素的移动
//(1)人物的移动
//(2)箱子的移动
//3.关卡的更新
//缺点:数据和操作的分离性,数据结构的改变引起操作方法的重写。。。。。十分的麻烦
3.缺点:
1.数据不具有封装性,可以任意的改变数据
2.在多人开发的时候,容易出现重命名的现象
3.在面向过程的时候,数据和操作往往都是分离的,这样就会在数据的结构如果发生改变,那么操作数
据的函数就不得不重写,这个代价就比较大
二、面向对象
1.解决问题的思路:
写类,类中包含解决问题的方法和属性,通过类来实例化对象,通过对象调用方法从而解决问题
2.代码重用,封装性,数据和方法一起不分开
三、命名空间
#include <stdio.h>
#include <iostream>
namespace Myspace
{
//数据与操作一起通过类来实现
class CMymath;
}
class Myspace::CMymath
{
int a;
int b;
public:
int Myadd();
CMymath();
};
int Myspace::CMymath::Myadd()
{
return a + b;
}
Myspace::CMymath::CMymath()
{
a = 1;
b = 1;
}
using namespace Myspace;
int main()
{
CMymath obj;
printf("%d\n", obj.Myadd());
}