← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达
← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达

面向对象编程 - Class类与实例 🏗️

概念介绍

还记得我们之前学的type和interface吗?它们定义了数据的"形状",而Class(类)则更进一步,它不仅定义数据的形状,还定义了数据的"行为"!

就像汽车的蓝图不仅描述汽车的样子(颜色、大小),还描述汽车能做什么(启动、加速、刹车)。Class就是这样的"蓝图"!

学习目标

  • 理解什么是Class(类)和实例
  • 掌握类的定义和构造函数
  • 学习方法的定义和调用
  • 理解封装的概念和private/public
  • 了解类的基本面向对象特性

🏗️ 什么是Class(类)?

生活类比:汽车制造厂

想象一个汽车制造厂:

  • Class(类):汽车的设计图纸
  • **实例(instance):根据图纸制造的每一辆具体汽车
  • **属性(properties):汽车的颜色、品牌、速度
  • **方法(methods):汽车能做的事情(启动、加速、刹车)
加载代码编辑器...

🎮 游戏中的Class应用

让我们用Class来重新设计游戏中的球:

加载代码编辑器...

🔐 封装(Encapsulation)

什么是封装?

封装就像是一个保护壳,它隐藏了对象的内部细节,只暴露必要的接口。

public 和 private

加载代码编辑器...

🧬 类的继承

什么是继承?

继承就像孩子继承父母的特征。子类(Child Class)会继承父类(Parent Class)的所有属性和方法,还可以添加自己的特性。

加载代码编辑器...

🎮 游戏中的继承应用

让我们用继承来创建不同类型的游戏角色:

加载代码编辑器...

🔤 Shadow Practice 抄写练习

第一步:理解性抄写

目标: 通过抄写理解Class的概念

加载代码编辑器...

第二步:概念验证练习

目标: 修改类定义,理解类的特性

加载代码编辑器...

第三步:创意扩展练习

目标: 应用Class设计复杂的游戏系统

加载代码编辑器...

💡 多种练习形式

练习1:模仿练习(抄写并理解)

任务: 准确抄写类的定义

加载代码编辑器...

练习2:微调练习(小改动理解概念)

任务: 修改类的定义,理解类的特性

加载代码编辑器...

练习3:创意练习(自由发挥)

任务: 设计自己的Class系统

加载代码编辑器...

练习4:挑战练习(动脑筋解决问题)

任务: 实现复杂的Class功能

加载代码编辑器...

⚠️ 常见错误与解决方法

错误1:this指向错误

症状: 方法中this指向undefined或错误对象 原因: 方法调用时this绑定丢失

加载代码编辑器...

错误2:抽象类实例化错误

症状: 尝试创建抽象类的实例 原因: 抽象类不能直接实例化

加载代码编辑器...

错误3:super()调用错误

症状: super()调用位置错误或参数错误 原因: super()必须在constructor中第一个调用

加载代码编辑器...

错误4:属性初始化顺序

症状: 使用未初始化的属性 原因: 属性在使用前未正确初始化

加载代码编辑器...

🎯 本课重点总结

核心概念回顾

  • ✅ Class类设计:构造函数、属性、方法的定义
  • ✅ 实例化:通过new关键字创建对象实例
  • ✅ 封装:public/private访问控制和数据保护
  • ✅ 继承:extends关键字和父类/子类关系
  • ✅ 抽象类:abstract类和抽象方法的定义

面向对象特性

  • 封装:隐藏内部实现,暴露必要接口
  • 继承:代码复用和层次化设计
  • 多态:不同对象对同一方法的不同实现
  • 抽象:定义通用接口和契约

实践技巧

  • 单一职责:每个类只负责一个明确的功能
  • 开闭原则:对扩展开放,对修改封闭
  • 组合优于继承:优先使用组合而非继承
  • 依赖注入:通过构造函数注入依赖

编程思维提升

  • 对象思维:用对象建模现实世界概念
  • 抽象思维:从具体实例中抽象出通用模式
  • 系统思维:设计类之间的协作关系
  • 模块化思维:将复杂系统分解为独立的类

🚀 下一步预告

恭喜你掌握了TypeScript的Class类和面向对象编程!现在你可以设计更复杂、更有组织的游戏系统了。下一课我们将学习模块化函数设计,让代码更整洁、更可复用。

第8课:模块化函数 - 让代码更整洁

新功能:

  • 将复杂功能分解为独立的函数
  • 函数的参数传递和返回值
  • 模块化的球管理系统
  • 代码复用和维护技巧

新概念:

  • 函数的职责分离
  • 参数设计和类型安全
  • 模块间的依赖关系
  • 代码组织和架构设计

预期成果: 完成下一课后,你的游戏代码将更加模块化、易于维护,为后续添加更复杂的功能做好准备!

准备好让你的代码变得更加专业了吗?

📋 扩展挑战(选做)

挑战1:设计模式应用

在实际代码中使用经典设计模式:

  • 单例模式:全局唯一的游戏管理器
  • 工厂模式:批量创建游戏对象
  • 策略模式:可切换的AI行为
  • 观察者模式:事件系统和通知机制

挑战2:高级面向对象特性

实现高级的面向对象概念:

  • 接口继承:多重继承的模拟
  • 泛型类:类型安全的容器类
  • 装饰器模式:动态添加功能
  • 反射机制:运行时类型检查

挑战3:游戏架构设计

设计完整的游戏架构:

  • 实体组件系统:ECS架构模式
  • 服务层架构:业务逻辑分离
  • 数据持久层:游戏数据的保存和加载
  • 网络通信层:多人游戏支持

挑战4:类型安全的状态管理

构建类型安全的状态管理:

  • Redux-like状态机:可预测的状态更新
  • 状态持久化:游戏状态的保存和恢复
  • 状态同步:多组件状态一致性
  • 状态验证:运行时状态完整性检查

这些挑战将帮助你深入理解面向对象编程的高级概念,为构建大型、复杂的应用程序做好准备!

Previous lesson
Previous
球体的交互魔法 - 鼠标与条件判断
Next
球的家族 - 循环与数组应用
Next lesson