当前位置: 首页 > news >正文

GESP6级C++考试语法知识(六、全面掌握面向对象(一))


第一课《对象王国大冒险》

—— 从“变量世界”进入“对象世界”


🌟本课学习目标

学完这一课,同学们将能够:

✅ 理解什么是“对象”
✅ 理解“属性”和“行为”
✅ 知道为什么现实世界适合“对象化”
✅ 能用struct创建简单对象
✅ 能自己设计“猫”“汽车”“勇士”等对象
✅ 开始建立“面向对象思维”


🌍 第一章:程序世界发生了大灾难!

1、很久很久以前……

在 C++ 王国里,所有程序都只有:

int double char string

这些普通变量。


2、有一天。

1、国王想做一个游戏:

⚔️《勇者大战火龙》


2、里面有:

  • 勇士

  • 火龙

  • 魔法师

  • 小猫宠物

  • 宝箱


3、结果同学们崩溃了!

因为按照过去的习惯,这样写:

string heroName = "小勇士"; int heroHp = 100; int heroAtk = 20; string dragonName = "火焰龙"; int dragonHp = 300; int dragonAtk = 50;

刚开始还行。


4、但角色越来越多:

hero1Hp hero2Hp hero3Hp dragon1Hp dragon2Hp cat1Hp dog1Hp

程序越来越乱!

整个王国:

💥 变量大爆炸!


5、于是!

汉克老师出现了!他说:


🌟同学们:“为什么不把东西,变成对象呢?”🌟


🏰 第二章:什么是“对象”?

1、对象,其实就是:

🌟现实世界里的“事物”

比如:


2、🐱 小猫

(1)它是不是一个事物?

当然是!

所以:

小猫 = 对象


(2)它有什么?

🌟属性

比如:

  • 名字

  • 年龄

  • 颜色

  • 体重

  • ........


(3)它会干什么?

🌟行为

比如:

  • 喵喵叫

  • 跑步

  • 吃鱼

  • 睡觉


(4)🌟于是:

对象 = 属性 + 行为

3、🐶 举更多例子


(1)🚗 汽车对象

属性

  • 颜色

  • 速度

  • 品牌


行为

  • 加速

  • 刹车

  • 鸣笛


(2)🧙 魔法师对象

属性

  • 名字

  • 法力值

  • 等级

行为

  • 放火球

  • 瞬移

  • 治疗


(3)📦 宝箱对象

属性

  • 金币数量

  • 是否打开

行为

  • 打开

  • 掉落装备


4、🌟重要思想

同学们一定要真正理解:


🌟现实世界,天然就是“对象组成”的!

不是:

变量组成

而是:

对象组成

🧠 第三章:以前的程序的缺点?

1、以前我们这样写:

string catName = "咪咪"; int catAge = 2; string catColor = "白色";

问题来了:


2、❌ 谁是谁的?

(1)这些变量:

catName catAge catColor

(2)虽然看起来属于猫。

但实际上:

它们只是“散落在地上的变量”。


(3)像:

🧩 一堆零件。


3、🌟对象思想:

(1)应该把它们装进一个“小盒子”里!

像这样:

📦 小猫对象


(2)里面装着:

名字 年龄 颜色

这样才像真正的“小猫”。


🏗️ 第四章:我们第一次创造对象!

1、在 C++ 里。

我们学过:

struct

他就可以来制造对象。

(后面会升级成 class)


2、🌟创建小猫对象

#include <iostream> using namespace std; struct Cat { string name; int age; string color; }; int main() { Cat cat1; cat1.name = "咪咪"; cat1.age = 2; cat1.color = "白色"; cout << cat1.name << endl; cout << cat1.age << endl; cout << cat1.color << endl; }

3、🌟运行结果

咪咪 2 白色

🎯第五章:代码逐步拆解


1、第一步:制造“对象模板”

struct Cat { string name; int age; string color; };

这表示:


2、🌟“世界上有一种东西,叫猫(Cat)。”

猫有:

  • 名字

  • 年龄

  • 颜色


注意!

这里:

Cat

还不是具体小猫。

它只是:

🌟“猫的设计图”


3、第二步:真正创造小猫

Cat cat1;

这时候:

世界上真正出现了一只小猫!

名字叫:

cat1

4、🌟第三步:给小猫属性

cat1.name = "咪咪";

表示:

咪咪这只猫的名字。


cat1.age = 2;

表示:

咪咪2岁。


5、🌟重点理解“.”

(1)这个点:

cat1.name

叫:

成员访问符


(2)意思是:


🌟“cat1 这只猫里面的 name”🌟


(3)就像:

📦 打开盒子,取里面的东西。


🐱 第六章:创建更多对象!


1、对象最大的厉害之处:

🌟能批量制造!


2、创建第二只猫

Cat cat2; cat2.name = "球球"; cat2.age = 3; cat2.color = "黑色";

3、🌟现在世界里有:

cat1 cat2

两只真正的小猫!


4、🌟这就是对象世界!

(1)不是:

一个变量 一个变量 一个变量

(2)而是:

一个对象 一个对象 一个对象

⚔️ 第七章:对象大战


1、🌟创建勇士对象

struct Hero { string name; int hp; int atk; };

2、🌟创建火龙对象

struct Dragon { string name; int hp; int atk; };

3、🌟真正创建角色

Hero hero1; hero1.name = "小勇士"; hero1.hp = 100; hero1.atk = 20; Dragon dragon1; dragon1.name = "火焰龙"; dragon1.hp = 300; dragon1.atk = 50;

4、🌟输出

cout << hero1.name << endl; cout << dragon1.name << endl;

5、🌟同学们会发现:

哇!

程序里的角色,

开始像“真实世界”了!


🧠 第八章:对象思想

这一章最重要!


1、🌟变量思想

以前:

一堆零散数据

像:

🧩 散乱积木。


2、🌟对象思想

现在:

把相关东西打包

像:

📦 一个完整角色。


3、🌟所以:

对象不是语法。

对象是:

🌟“看待世界的方法”


🏆 第九章:闯关练习


🎮 第一关:创建 Dog 对象

要求:

属性: 名字 年龄 品种

输出:

小黄 3 金毛

🎮 第二关:创建 Car 对象

要求:

品牌 速度 颜色

🎮 第三关:创建 Student 对象

要求:

姓名 年龄 分数

👑 Boss挑战(真正举一反三)

请孩子自己思考:


🌟“现实世界还有哪些对象?”🌟

例如:

  • 飞机

  • 奥特曼

  • 手机

  • 机器人

  • 坦克

  • 长颈鹿


然后思考:


🌟它们有哪些属性?

🌟它们有哪些行为?


🌟这一步极其重要!

因为:

这代表同学们开始真正进入“对象思维”


📚 第十章:本课总结


1、🌟今天真正学会了什么?

🌟“对象思想”


2、🌟对象是什么?

对象 = 属性 + 行为

3、🌟为什么需要对象?

因为:

现实世界本来就是对象组成的。


4、🌟struct 给我们做了什么?

它把:

零散变量

变成:

一个完整对象

5、🌟一句重要的话

🌟“程序里的角色,也应该像现实世界一样活着。”🌟


🚀 下一课预告

下一节课:

⚔️《类——制造对象的魔法图纸》⚔️

同学们将学会:

✅ class
✅ 类和对象区别
✅ 为什么“类不是对象”
✅ 为什么 class 比 struct 更强大
✅ 真正进入面向对象世界

http://www.jsqmd.com/news/802478/

相关文章:

  • 南京诚信电器家具回收:江宁铝合金门窗回收怎么联系 - LYL仔仔
  • 企业如何通过API Key管理与审计日志加强内部AI应用管控
  • macOS OBS虚拟摄像头技术实现指南:CoreMediaIO架构与DAL插件开发
  • ARM µHAL定时器与中断编程实战指南
  • [利用LangGraph SDK调用部署的Agent-01] 以dev模式部署一个简单的Agent Server
  • AI研究全景导航:从领域应用到核心技术,构建结构化知识库
  • 别再只调包了!用Hugging Face Transformers库做中文情感分析,从数据准备到模型部署完整流程
  • MemPalace:为AI构建长期记忆,破解DevOps与SRE中的经验复用难题
  • 如何轻松完成ESP8266固件烧录:NodeMCU PyFlasher图形化工具详解
  • Apollo Save Tool:在PS4上实现游戏存档自由管理的技术方案
  • DeployStack:一键将Stdio MCP服务器转为HTTP端点,解决AI工具集成难题
  • 2026开源字体推荐:企业个人商用完全免费 - 品牌2025
  • 从像素到数据流:解码Video In IP如何将标准视频时序映射为AXI4-Stream
  • TEdit终极指南:如何用免费开源地图编辑器10倍提升泰拉瑞亚创作效率
  • NodeMCU PyFlasher终极指南:5分钟完成ESP8266固件烧录的免费图形化工具
  • 《消失的勺子》:工程师从元素周期表重获跨界思维与灵感
  • 如何用15KB的calendar.js轻松实现多功能日期选择器:完整指南
  • AutoClicker技术深度解析:现代自动化点击工具架构揭秘
  • 移远通信,批发标杆——黑龙江移远科技有限公司实力全解析 - 黑龙江单工科技
  • 2020年计算机视觉十大关键论文:从Transformer到自监督的范式革命
  • Context Engine:统一管理22款AI编程助手上下文,实现一处编写处处生效
  • Rust实现微信iLink Bot协议SDK:从零构建高性能机器人
  • Qt/C++实战:手把手教你解析GPS的NMEA-0813协议报文(附完整代码)
  • 短视频动态循环技术:算法原理与工程实践全解析
  • 中频治疗仪OEM厂家供应商 - 舒雯文化
  • 3步打造你的桌面全能监控中心:TrafficMonitor插件终极指南
  • 别再死记硬背LIN总线拓扑了!用这3个实际车载模块案例帮你彻底搞懂单主多从
  • LabVIEW 3D视觉开发工具包:从零到一,构建工业级三维视觉应用
  • AI驱动三维分子生成:原子索引与几何结构可控设计
  • 5分钟学会PPTist:免费在线PPT制作工具完全指南