← 目录 / 第十二章 · 类与面向对象 / 12.0 概述

十二、类与面向对象

把数据和操作打包在一起,用"对象"的方式思考程序。本章从最基础的 class 定义出发,逐步带你理解封装、继承与多态。

本页目录
12.0.1 面向对象是什么

想象一下,你要写一个程序来管理一个班级里所有学生的信息。最开始你会定义一堆变量:name1score1name2score2……然后再写一堆函数来操作这些数据。很快你就会发现,数据和函数到处都是,找起来头疼,改起来更头疼。

面向对象的核心思想就是:把属于同一个"东西"的数据和操作,打包在一起。 一个学生的名字、分数,以及"打印信息"、"修改分数"这些操作——全都放在一个叫 Student 的"类"里。这个类就像一张设计图,按照它可以批量创建很多个学生"对象"。

📦
类(class)是一张设计图对象(object)是按这张图造出来的实物。就像"手机"是一个类,而你手上那台具体的手机就是一个对象。一张设计图可以造出无数台手机,一个类也可以创建无数个对象。
面向对象的三大特性
🔒
封装 Encapsulation
把数据藏起来,只对外提供固定的"接口"按钮。外部代码不能乱改内部数据,就像自动售货机只有投币口和出货口,你看不到里面的机器。
🌿
继承 Inheritance
子类可以直接获得父类已有的属性和方法,再在上面做扩展。就像"智能手机"继承了"手机"的打电话功能,又额外多了上网功能。
🎭
多态 Polymorphism
同一行代码,根据对象的实际类型执行不同的动作。就像"按下启动键",对洗衣机是开始洗衣,对微波炉是开始加热——接口相同,行为不同。

本章关键字一览

先有个印象,不需要现在全部记住——学完对应章节后再回来看,每个关键字都会变得清晰。

关键字 / 语法作用在哪学
class定义一个类(成员默认私有)12.1 / 12.2
struct结构体(成员默认公开),与 class 本质相同12.1
public公开成员,外部代码可以访问12.3
private私有成员,只有类内部能访问12.3
protected保护成员,子类也能访问,外部不能12.3 / 12.8
this指向当前对象自身的指针12.2
构造函数对象创建时自动执行的初始化代码12.4
析构函数 ~对象销毁时自动执行的清理代码12.4
operator运算符重载,让自定义类型支持 +、< 等符号12.5
static静态成员:所有对象共享同一份12.7
virtual虚函数:运行时动态决定调用哪个版本12.9
= 0纯虚函数:子类必须实现,类本身无法实例化12.10

本章学习路径

建议按顺序学习——后面的知识点都建立在前面的基础上。"基础语法"部分覆盖 CSP-J 考纲,"进阶特性"部分是拓展内容。

CSP-J 基础语法 进阶特性(拓展) 12.1 从 struct 到 class 12.2 类的定义与对象 12.3 封装与访问控制 12.4 构造与析构函数 12.5 运算符重载 12.6 拷贝构造函数 12.7 静态成员 static 12.8 继承基础 12.9 虚函数与多态 12.10 抽象类与纯虚函数 掌握基础后 建议按 12.1 → 12.2 → 12.3 → 12.4 → 12.5 的顺序完成基础语法,再进入进阶特性
绿色模块为 CSP-J 考纲内容,蓝色模块为进阶拓展内容。
12.6 拷贝构造函数12.7 静态成员 是独立专题,可在学完基础后按需选读。
接下来要学什么

先从"基础语法"开始,把 class 的核心用法掌握扎实,这部分是 CSP-J 必会内容。"进阶特性"部分建议在理解基础之后再学习。