面向对象程序设计

Posted 真就妙妙屋啊都

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象程序设计相关的知识,希望对你有一定的参考价值。

第二次作业


c语言流程图


c++类图


二者对比

面向过程的时候,所写的程序需要思考好每一个步骤,设定好电梯以及请求的各个变量,然后用不同的函数一步步依次调用去执行,更多的感觉是依照运行的步骤去设计执行这个程序。
而利用面向对象去设计的时候,设计出的电梯类,产生的电梯对象,每一个方法都是一个特定的功能,一个类型的变量整合在一个类中,方法和函数类似,方法更多的针对对象本身作处理,以功能划分问题,还能通过创建多个电梯对象来模拟多个电梯。

优劣的话:个人认为,面向对象在封装的时候很多私有变量得通过特定的方法来读写,这样的方法一多就显得程序冗杂。而本身用类这一概念将一个个类型的东西独立出来,就使得在编写的过程相对面向过程更容易的写出低耦合的程序,而每一个类在较小的修改下也能够在不同程序中使用,而面向过程有时候就需要将多个函数分类去修改。虽然面向过程的运行思路很清晰,但面向对象的结构会更加清晰。同时封装使得很多成员不容易被外部方法所修改,也一定程度上减少了错误的产生。


电梯类

#include <queue>
using namespace std;
class lift
{
	//实验性质 
	private:
		int time;//电梯的运行时间
		int pos;//电梯的位置
		int sta;//电梯当前运行状态
		queue<int> des;//目的地队列 
	public:
	    lift();//构造函数
	    ~lift();//析构函数 
		int get_pos();//获取位置函数 
		void add_des(int floor);//目的楼层加入队列 
}; 
#include<iostream>
#include<queue>
#include"lift.h"
using namespace std;

lift::lift()//构造函数 
{
	time = 0;
	pos = 1;//最底层为一层 
	sta = 0;//0为上行,1为下行。 
}

int lift::get_pos()
{
	return pos;
}

void lift::add_des(int floor)
{
	des.push(floor);
} 

以上是关于面向对象程序设计的主要内容,如果未能解决你的问题,请参考以下文章

Java中面向对象的三大特性之封装

Scala的面向对象与函数编程

python之路之前没搞明白4面向对象(封装)

JAVA方法的定义

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂