面向对象的理解

Posted szmtjs10

tags:

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

c++面向对象的理解

1.介绍

面向过程,就是步骤。

面向对象,很符合我们现在的社会方式,你面试程序员,也是前端程序员,后端程序员的应聘,不是面向某个具体的程序说步骤。

2.案例:

  去饭店吃饭

2.1 面向过程的 

#include <iostream>
using namespace std;

void main()

    cout<<"引导入座"<<endl;
    cout<<"递菜单"<<endl;
    cout<<"点餐"<<endl;
    cout<<"告诉厨师菜谱"<<endl;
    cout<<"做菜"<<endl;
    cout<<"用餐"<<endl;
    cout<<"计算餐费"<<endl;
    cout<<"支付餐费"<<endl;
    cout<<"收取餐费"<<endl;

 

再引申一下,形成函数调用。但这个不是面向对象

#include <iostream>
using namespace std;
void ydrz()
    cout<<"引导入座"<<endl;

void dcd()
    cout<<"递菜单"<<endl;

void dc()
    cout<<"点餐"<<endl;

void gscscd()
    cout<<"告诉厨师菜谱"<<endl;

void zc()
    cout<<"做菜"<<endl;

void yc()
        cout<<"用餐"<<endl;
    

void jscf()
    cout<<"计算餐费"<<endl;


void zfcf()
    
    cout<<"支付餐费"<<endl;
    

void sqcf()
    
    cout<<"收取餐费"<<endl;


void main()

    ydrz();//引导入座函数
    dcd();//递菜单函数
    dc();//点餐函数"
    gscscd();//"告诉厨师菜谱"函数
    zc();//"做菜"函数
    yc();//"用餐"函数
    jscf();//"计算餐费"函数
    zfcf();//"支付餐费"函数
    sqcf();//"收取餐费"函数

 

2.2 面向对象

#include <iostream>
using namespace std;
class Customer
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    Customer()
    
    ~Customer()
    
    void dc()
        cout<<"点餐"<<endl;
    
    void yc()
        cout<<"用餐"<<endl;

    
    void zfcf()

        cout<<"支付餐费"<<endl;

    
;
class Waiter

private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void ydrz()
        cout<<"引导入座"<<endl;
    
    void dcd()
        cout<<"递菜单"<<endl;
    

    void gscscd()
        cout<<"告诉厨师菜谱"<<endl;
    
;
class Cook
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void zc()
        cout<<"做菜"<<endl;
    

;

class Cashier

private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void jscf()
        cout<<"计算餐费"<<endl;
    

    void sqcf()
        cout<<"收取餐费"<<endl;
    
;


void main()

    Customer zhangsan;
    Waiter   xiaoming;
    Cook     laowang;
    Cashier  xiaohong;
    xiaoming.ydrz();//"引导入座"函数
    xiaoming.dcd();//"递菜单"函数
    zhangsan.dc();//"点餐"函数
    xiaoming.gscscd();//"告诉厨师菜谱"函数
    laowang.zc();//"做菜"函数
    zhangsan.yc();//"用餐"函数
    xiaohong.jscf();//"计算餐费"函数
    zhangsan.zfcf();//"支付餐费"函数
    xiaohong.sqcf();//"收取餐费"函数

 

运行结果一致,

 

3.继承和多态

上例:老王(laowang)厨师,有个儿子小王厨师,继承了老王厨师会的所有菜品,还有创新,小王厨师的类里能实现的方法(会做的事情)就不要写全部菜品,只写创新的菜品。、

#include <iostream>
using namespace std;
class Customer
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    Customer()
    
    ~Customer()
    
    void dc()
        cout<<"点餐"<<endl;
    
    void yc()
        cout<<"用餐"<<endl;

    
    void zfcf()

        cout<<"支付餐费"<<endl;

    
;
class Waiter

private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void ydrz()
        cout<<"引导入座"<<endl;
    
    void dcd()
        cout<<"递菜单"<<endl;
    

    void gscscd()
        cout<<"告诉厨师菜谱"<<endl;
    
;
class Cook
private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void zc()
        cout<<"做菜"<<endl;
    

;

class newCook:public Cook

public:
    void zmb()
        cout<<"做面包"<<endl;
    
;


class Cashier

private:
    char name;
    char sex;
    char phoneNumber; 
public:
    void jscf()
        cout<<"计算餐费"<<endl;
    

    void sqcf()
        cout<<"收取餐费"<<endl;
    
;


void main()

    Customer zhangsan;
    Waiter   xiaoming;
    Cook     laowang;
    newCook  xiaowang;
    Cashier  xiaohong;
    xiaoming.ydrz();//"引导入座"函数
    xiaoming.dcd();//"递菜单"函数
    zhangsan.dc();//"点餐"函数
    xiaoming.gscscd();//"告诉厨师菜谱"函数
    laowang.zc();//"做菜"函数
    xiaowang.zc();//小王"做菜"函数
    xiaowang.zmb();//小王"做面包"函数
    zhangsan.yc();//"用餐"函数
    xiaohong.jscf();//"计算餐费"函数
    zhangsan.zfcf();//"支付餐费"函数
    xiaohong.sqcf();//"收取餐费"函数

 

 

 

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

程序员小白如何理解面向对象?

程序员小白如何理解面向对象?

对面向对象c++中多态的理解

java面向对象思想如何理解?

面向对象中静态方法和属性的理解

如何理解面向对象