面向对象程序设计2

Posted Destr

tags:

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

从C语言看电梯

在使用C语言编写电梯作业时,大致的结构是先建立一个结构体,用来储存所有的请求,内部含有请求层数,请求时间,目的层数,当前层数等变量,然后在main函数中进行一些预处理,再构建上行下行等一些外部函数,并在函数中进行一系列请求的处理。


从C++类看电梯

在面向对象程序设计的第一次作业中,初次接触类的概念,有种迷迷糊糊把作业写完的感觉,但是在写完之后的调试中,随着自己修改的错误的增多,对于类的使用也有了一些概念。代码整体包含了一个电梯类以及一个main函数,电梯类中包含了请求时间,请求层数等一系列请求,同时C语言中的外部函数同样放到了电梯的类中,在main函数中进行一些简单的处理。


对比

相对于C++来说,C语言整体结构较为臃肿,一旦出现错误的话,检查错误比较繁琐,而C++的类则结构比较简单明了,将整个代码模块化,结构清晰。

虽然已经使用C++的类写过一次电梯,但其实对于面向对象和面向过程的概念还不是特别清楚,也无法明显区分,希望接下来的作业中可以逐渐明晰。


下面是C++中的电梯类的代码

class Elevator
{
public:
    int time;//总时间
    int requesttime;//请求时间
    int waitfloor;//请求层数
    int requestfloor;//目的层数
    int currentfloor;//当前层数
    Elevator();
    ~Elevator();


    int gotofloor(int requesttime,int requestfloor,int time,int waitfloor,int currentfloor);//前往目的层数
    int stop(int time,int currentfloor);//停止
    
};
#include "stdafx.h"
#include "Elevator.h"
#include<iostream>
#include<stdio.h>
using namespace std;
Elevator::Elevator()
{
}


Elevator::~Elevator()
{
}


int Elevator::gotofloor(int requesttime,int requestfloor,int time,int waitfloor,int currentfloor)
{
    int g, h;
    if (time < requesttime)time = requesttime;
    g = waitfloor - currentfloor;
    if (g < 0)g = -g;
    h = waitfloor - requestfloor;
    if (h < 0)h = -h;
    time = time + g + h;
    return time;
}//电梯送乘客前往目的地

int Elevator::stop(int time,int currentfloor)
{
    time++;
    return time;
}//电梯停靠

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

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

JAVA方法的定义

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

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器

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