首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >《计算机是怎么跑起来的》第七章读后小结

《计算机是怎么跑起来的》第七章读后小结

作者头像
Lihua奏
发布2026-06-23 20:28:10
发布2026-06-23 20:28:10
920
举报

《计算机是怎么跑起来的》第七章读后小结

这章讲的是:面向对象编程

面向对象编程是一种以对象(object)为中心的编程方法。其背后的思想是:对象不仅包含数据,也包含行为与操作。这种编程方法不仅使程序易于复用,还提升了软件的生产效率。面向对象编程主要使用的编程技巧有 3 种:继承、封装、多态。

面向对象的根本价值

面向对象的根本价值在于:可复用、可扩展、可维护。

  • 传统写法:一条条命令 做完 a 的 -> 做 b 的 -> 做完 b 的 -> 做 c 的
  • 面向对象:一个个角色 汽车、学生、订单、玩家

首先是:类

代码语言:javascript
复制
// 没有使用类的时候
int a{};
int b{};
int c{};

void fna() {}
void fnb() {}
void fnc() {}

可以看到,如果你要去开发或者维护这个程序,这是非常耗费心神的。不说里面的具体逻辑,就算只是翻到对应的地方都很累。

由此,面向对象中的“类”诞生了。它可以把程序中相关的函数和变量汇集到一起,形成组件。

代码语言:javascript
复制
class Mya
{
public:
    int a{};

    void fna() {
        // 处理过程
    }
};

class Myb
{
public:
    int b{};

    void fnb() {
        // 处理过程
    }
};

还没有感觉出来吗?你可以把上面代码想象成一个超大类,下面代码就是从这个超大类中分出许许多多的小类,小类中只包含与自己相关的内容。

接下来是:对象

相信对“对象”都不陌生,它就是真实的实例。

代码语言:javascript
复制
#include <string>

// 这是类
class Dog
{
public:
    std::string name{};
    void fnDog() {
        // 跑、叫
    }
};

Dog dog;
dog.name = "旺财";
dog.fnDog();

面向对象编程通过对象之间的消息传递来驱动程序。

我们来看使用场景:

  • 非面向对象编程编写的程序
代码语言:javascript
复制
/* 获取玩家A的手势 */
auto a = GetHand();
/* 获取玩家B的手势 */
auto b = GetHand();
/* 判定胜负 */
auto winner = GetWinner(a, b);
  • 使用面向对象编程语言编写的程序
代码语言:javascript
复制
// 获取玩家A的手势
auto a = PlayerA.GetHand();
// 获取玩家B的手势
auto b = PlayerB.GetHand();
// 由裁判判定胜负
auto winner = Judge.GetWinner(a, b);

它们的区别在于:

  • 一个的 和 为独立存在的函数GetHand()GetWinner()
  • 另一个的 和 为隶属于对象的函数GetHand()GetWinner()

所以,使用 C++ 这类面向对象编程语言,可以通过调用对象的方法来驱动程序。这种函数调用方式,就是对象之间的“消息传递”。

接下来是:封装、继承、多态

  1. 封装:把数据和操作它的函数打包成“类”。 就像洗衣机的盖子,你只需要按按钮,就可以洗衣服;你不需要管里面的滚筒怎么转。
  2. 继承:允许新类在现有类的基础上扩展。 猫狗都会叫、会跑,那可以有个共同父类,比如动物类,然后去继承动物类里面的方法和属性。
  3. 多态:不同对象对同一消息可以有不同响应。 动物类都有“叫”的方法,但具体叫声由对象决定,比如狗是“汪汪”,猫是“喵喵”。

那么,类和对象有什么区别?

类是对象的定义,而对象是类的实例。

我们定义好一个类后,还无法直接使用类中的成员,必须先生成该类的实例,这个实例就是对象。

代码语言:javascript
复制
class MyClass {
public:
    int variable{};

    void Function() {
        // 使用对象所持有的函数
    }
};

MyClass obj;         // 创建对象
obj.variable = 123;   // 使用对象所持有的变量
obj.Function();       // 使用对象所持有的函数
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lihua奏 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《计算机是怎么跑起来的》第七章读后小结
    • 这章讲的是:面向对象编程
    • 面向对象的根本价值
    • 首先是:类
    • 接下来是:对象
    • 接下来是:封装、继承、多态
    • 那么,类和对象有什么区别?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档