主讲老师
资深讲师,手把手带你进阶
刘玥
九丘教育 CEO,华为开发者专家(HDE)。人民邮电出版社影响力作者,畅销书作者,国内首本仓颉图书的作者,代表作:《图解仓颉编程:基础篇》、《图解仓颉编程:高级篇》、《仓颉编程快速上手》、《鸿蒙原生应用开发:ArkTS语言快速上手》。在高校任教十余年,具有丰富的课堂教学经验,尤其擅长讲授应用开发、编程语言和算法相关的课程。荣获 2025 年华为仓颉编程语言社区优秀贡献奖。
学习目标
本课程的目标是帮助你
系统掌握仓颉编程语言的语法体系和核心特性
理解面向对象、函数式编程、泛型等现代编程范式
编写结构清晰、易于维护的仓颉代码
跟随课程项目练习,积累使用仓颉开发的实践经验
具备阅读和理解仓颉开源项目源码的能力
为后续学习其他编程语言打下良好基础
课程特色
精心打磨,给你优质的学习体验
零基础友好
从最基础的概念讲起,适合编程初学者
图解教学
核心知识点配有精心设计的图解,抽象概念可视化,降低理解门槛
实战驱动
实战案例演练,边学边做,快速积累实践经验
配套图书
搭配《图解仓颉编程》系列图书,视频 + 图书双重学习(图书需要单独购买)
专属答疑
学员享有专属答疑服务,老师及时解答学习中的疑问
适用人群
从零基础到熟练上手,看看哪类学员适合学习
想要学习一门现代编程语言的开发者
想要进入鸿蒙生态的软件从业者
希望拓宽技术视野的在校学生
对华为自研仓颉编程语言感兴趣的任何人
常见问题
购买前有疑问?我们来解答
不需要。课程从最基础的概念讲起,手把手带你入门。
课程是录播课,学员可以自主安排学习时间,随到随学。
只需要一台电脑即可,Windows 或 macOS 系统均可。
购买后不限期,可以在电脑上反复观看。(不支持手机和平板)
学员享有专属的答疑服务,遇到问题可随时提问,老师会在工作时间内及时解答。
课程大纲
系统的学习路径,循序渐进
01课程介绍
02仓颉编程语言简介
03软件下载
04在Windows系统中搭建开发环境
05在macOS系统中搭建开发环境
06在Linux系统中搭建开发环境
07Visual Studio Code常用设置
08Visual Studio Code常用快捷键
09了解示例程序
01概述
02变量的声明-变量声明语法
03变量的声明-变量的可变性
04变量的声明-变量名和标识符
05变量的声明-变量的数据类型
06变量的声明-变量的初始值和初始化
07变量的声明-课后练习
08变量的使用-读取变量值
09变量的使用-对可变变量进行赋值
10变量的使用-课后练习
11小结
01概述
02整数类型-仓颉的整数类型
03整数类型-整数类型字面量的数制和分隔符
04整数类型-整数类型字面量的类型后缀
05浮点类型
06字符类型-字符编码
07字符类型-字符类型字面量
08字符串类型-字符串字面量
09字符串类型-字符串的拼接
10字符串类型-插值字符串
11字符串类型-使用转义字符格式化文本
12元组类型
13数组类型
14区间类型
15Bool、Unit和Nothing类型
16课后练习
17小结
01概述
02算术操作符-仓颉的算术操作符
03算术操作符-基本运算规则
04算术操作符-优先级和结合性
05算术操作符-对操作数类型的要求
06算术操作符-算术表达式的类型
07算术操作符-数值类型之间的类型转换
08算术操作符-小结
09算术操作符-课后练习
10自增和自减操作符
11关系操作符-仓颉的关系操作符
12关系操作符-数值类型的关系运算
13关系操作符-Unicode编码
14关系操作符-字符类型的关系运算
15关系操作符-字符串类型的关系运算
16关系操作符-小结
17关系操作符-课后练习
18逻辑操作符-仓颉的逻辑操作符
19逻辑操作符-逻辑表达式的构建
20逻辑操作符-逻辑短路特性
21逻辑操作符-课后练习
22位运算操作符-学习建议
23位运算操作符-十进制和二进制的互相转换
24位运算操作符-无符号整数在计算机内部的表示
25位运算操作符-有符号整数在计算机内部的表示:原码
26位运算操作符-有符号整数在计算机内部的表示:反码
27位运算操作符-有符号整数在计算机内部的表示:补码
28位运算操作符-仓颉的位运算操作符
29位运算操作符-按位求反
30位运算操作符-按位与
31位运算操作符-按位异或
32位运算操作符-按位或
33位运算操作符-左移和右移的运算规则:左移
34位运算操作符-左移和右移的运算规则:特殊整数的补码
35位运算操作符-左移和右移的运算规则:右移
36位运算操作符-左移和右移的应用
37位运算操作符-小结
38赋值操作符和复合赋值操作符
39小结
01概述-流程图
02概述-结构化程序设计的3种基本控制结构
03顺序结构-通过算术运算交换变量值
04顺序结构-通过中间变量交换变量值
05分支结构-单分支if表达式
06分支结构-单分支if表达式的课后练习
07分支结构-双分支if表达式的基本用法
08分支结构-双分支if表达式的类型和值
09分支结构-嵌套的if表达式的基本用法
10分支结构-多层嵌套的if表达式
11分支结构-嵌套的if与多个单分支if的区别
12分支结构-课后练习
13循环结构-while表达式:基本用法
14循环结构-while表达式:示例程序
15循环结构-while表达式:计算阶乘
16循环结构-while表达式:使用标志
17循环结构-do-while表达式:基本用法
18循环结构-do-while表达式:求最大公约数
19循环结构-do-while表达式:计算斐波那契数列
20循环结构-for-in表达式:基本用法
21循环结构-for-in表达式:课后练习
22循环结构-for-in表达式:遍历数组
23循环结构-for-in表达式:循环变量
24循环结构-for-in表达式:where条件
25循环结构-for-in表达式:判断素数
26循环结构-break表达式:基本用法
27循环结构-break表达式:在无限循环中使用break表达式
28循环结构-break表达式:示例程序
29循环结构-continue表达式
30循环结构-循环的嵌套:执行过程
31循环结构-循环的嵌套:嵌套中的break和continue
32数制转换-十进制向二进制转换
33数制转换-十进制向八进制转换
34数制转换-十进制向十六进制转换
35数制转换-二进制向十进制转换:相关的字符串操作
36数制转换-二进制向十进制转换:将二进制字符串转换为十进制整数
37数制转换-八进制向十进制转换
38数制转换-十六进制向十进制转换
39有趣的整数-水仙花数
40有趣的整数-完全数
41有趣的整数-自除数
42有趣的整数-勾股数
43排序-冒泡排序
44排序-选择排序
45排序-插入排序
46查找-线性查找
47查找-二分查找
48小结
01概述
02函数的定义-函数定义的语法
03函数的定义-函数参数
04函数的定义-函数体:return表达式
05函数的定义-函数体:函数参数是不可变变量
06函数的定义-函数体:函数体的类型
07函数的定义-函数返回值
08函数的调用和执行-函数调用的语法
09函数的调用和执行-参数传递:非命名参数
10函数的调用和执行-参数传递:命名参数
11函数的调用和执行-参数传递:混合使用非命名参数和命名参数
12函数的调用和执行-函数调用的执行过程
13函数应用示例:排序与二分查找综合案例
14函数应用示例:快乐数
15函数应用示例:有趣的素数
16变量的作用域-作用域的概念
17变量的作用域-程序的基本结构
18变量的作用域-全局变量的作用域
19变量的作用域-局部变量的作用域
20变量的作用域-变量作用域的核心规则一
21变量的作用域-变量作用域的核心规则二
22函数的重载
23递归函数
24小结
01概述
02类的定义和对象的创建-定义类
03类的定义和对象的创建-创建类的对象
04成员变量-实例成员变量
05成员变量-静态成员变量
06成员变量-课后练习
07构造函数-普通构造函数
08构造函数-主构造函数
09构造函数-构造函数的重载
10成员函数-实例成员函数
11成员函数-静态成员函数
12成员函数-成员函数的重载
13成员函数-成员函数的作用
14成员访问-访问类的成员
15成员访问-成员访问限制:实例成员函数
16成员访问-成员访问限制:静态成员函数
17成员访问-成员访问限制:构造函数
18成员访问-小结
19深入了解构造函数-初始化实例成员变量
20深入了解构造函数-在构造函数中加入逻辑判断(上)
21深入了解构造函数-在构造函数中加入逻辑判断(下)
22深入了解构造函数-在构造函数中调用其他函数
23值类型与引用类型-值类型
24值类型与引用类型-引用类型
25值类型与引用类型-类是引用类型
26类和对象的基础知识小结-小结
27类和对象的基础知识小结-课后练习
28综合案例一:网上商城(一)-场景分析及需求分析
29综合案例一:网上商城(一)-代码实现
30综合案例一:网上商城(一)-阶段小结
31综合案例一:网上商城(二)-需求分析
32综合案例一:网上商城(二)-代码实现
33综合案例一:网上商城(二)-阶段小结
34封装-引例
35封装-访问控制
36封装-成员属性:基本用法
37封装-成员属性:没有后备字段的只读属性
38封装-课后练习
39综合案例一:网上商城(三)-需求分析
40综合案例一:网上商城(三)-代码实现
41综合案例一:网上商城(三)-阶段小结
42继承-基本概念
43继承-基本用法:子类继承了什么
44继承-基本用法:构造函数与继承(上)
45继承-基本用法:构造函数与继承(下)
46继承-基本用法:private成员与继承
47继承-基本用法:访问修饰符与继承(上)
48继承-基本用法:访问修饰符与继承(下)
49继承-基本用法:继承的规则
50继承-重写与重定义:实例成员的重写(上)
51继承-重写与重定义:实例成员的重写(下)
52继承-重写与重定义:静态成员的重定义(上)
53继承-重写与重定义:静态成员的重定义(下)
54继承-重写与重定义:注意事项
55继承-重写与重定义:小结
56继承-UML类图
57多态-多态的基本概念(上)
58多态-多态的基本概念(下)
59多态-动态绑定与静态绑定:动态绑定
60多态-动态绑定与静态绑定:静态绑定
61多态-为什么需要多态
62多态-多态的实际应用:案例一
63多态-多态的实际应用:案例二
64多态-多态的优点与局限性
65多态-多态与重载的区别:继承场景下的函数重载
66多态-多态与重载的区别:重写与重载
67综合案例一:网上商城(四)-需求分析
68综合案例一:网上商城(四)-代码实现
69综合案例一:网上商城(四)-阶段小结
70综合案例一:网上商城(五)-需求分析
71综合案例一:网上商城(五)-代码实现
72综合案例一:网上商城(五)-阶段小结
73组合-什么是组合
74组合-组合与继承(上)
75组合-组合与继承(下)
76综合案例一:网上商城(六)-需求分析
77综合案例一:网上商城(六)-代码实现
78综合案例一:网上商城(六)-阶段小结
79综合案例一:网上商城(六)-代码重构
80小结
01抽象类-引例
02抽象类-抽象类的基本语法(上)
03抽象类-抽象类的基本语法(下)
04抽象类-抽象类的用途:表达“不应实例化”的概念(上)
05抽象类-抽象类的用途:表达“不应实例化”的概念(中)
06抽象类-抽象类的用途:表达“不应实例化”的概念(下)
07抽象类-抽象类的用途:代码复用 + 强制规范
08抽象类-抽象类的用途:模板方法模式(上)
09抽象类-抽象类的用途:模板方法模式(中)
10抽象类-抽象类的用途:模板方法模式(下)
11抽象类-抽象类与多态:抽象类 vs. 普通类
12抽象类-抽象类与多态:案例一
13抽象类-抽象类与多态:案例二(装饰器模式)
14抽象类-抽象类与多态:关键设计要点与最佳实践
15抽象类-sealed修饰符
16抽象类-小结
17综合案例一:网上商城(七)-需求分析
18综合案例一:网上商城(七)-代码实现
19综合案例一:网上商城(七)-阶段小结
20struct类型-初识struct
21struct类型-struct与class的核心区别:值类型 vs. 引用类型(上)
22struct类型-struct与class的核心区别:值类型 vs. 引用类型(下)
23struct类型-struct与class的核心区别:struct不支持继承
24struct类型-struct与class的核心区别:struct推荐不可变设计(上)
25struct类型-struct与class的核心区别:struct推荐不可变设计(下)
26struct类型-选择struct还是class
27struct类型-常见陷阱
28struct类型-典型应用案例:几何图形与向量计算
29struct类型-典型应用案例:颜色值处理
30struct类型-典型应用案例:货币金额计算
31struct类型-典型应用案例:配置参数
32struct类型-典型应用案例:小结
33struct类型-小结
34综合案例一:网上商城(八)-需求分析
35综合案例一:网上商城(八)-代码实现
36综合案例一:网上商城(八)-阶段小结
37接口-什么是接口(上)
38接口-什么是接口(下)
39接口-接口的定义
40接口-接口的实现:基本规则
41接口-接口的实现:成员函数的一般实现规则(上)
42接口-接口的实现:成员函数的一般实现规则(下)
43接口-接口的实现:mut函数(上)
44接口-接口的实现:mut函数(下)
45接口-接口的实现:成员属性的实现
46接口-接口的实现:接口成员的默认实现(上)
47接口-接口的实现:接口成员的默认实现(中)
48接口-接口的实现:接口成员的默认实现(下)
49接口-接口的继承(上)
50接口-接口的继承(中)
51接口-接口的继承(下)
52接口-接口与多态
53接口-面向接口编程:智能家居案例(一)
54接口-面向接口编程:智能家居案例(二)
55接口-面向接口编程:智能家居案例(三)
56接口-面向接口编程:智能家居案例(四)
57接口-小结
58综合案例一:网上商城(九)-需求分析
59综合案例一:网上商城(九)-代码实现
60综合案例一:网上商城(九)-阶段小结
61小结-类型体系回顾(上)
62小结-类型体系回顾(中)
63小结-类型体系回顾(下)
64小结-类型选择指南(上)
65小结-类型选择指南(中)
66小结-类型选择指南(下)
67小结-子类型关系(上)
68小结-子类型关系(下)
69小结-面向对象设计最佳实践:继承与接口
70小结-面向对象设计最佳实践:继承与组合
71小结-面向对象设计最佳实践:设计原则回顾
72小结-面向对象设计最佳实践:实践建议
01概述
02综合案例一:网上商城(十)-需求分析
03综合案例一:网上商城(十)-代码实现
04综合案例一:网上商城(十)-阶段小结
05综合案例一:网上商城(十一)-需求分析
06综合案例一:网上商城(十一)-代码实现(上)
07综合案例一:网上商城(十一)-代码实现(下)
08综合案例一:网上商城(十一)-阶段小结
09综合案例一:网上商城(十二)-需求分析
10综合案例一:网上商城(十二)-代码实现(上)
11综合案例一:网上商城(十二)-代码实现(中)
12综合案例一:网上商城(十二)-代码实现(下)
13综合案例一:网上商城(十二)-阶段小结
14综合案例一:网上商城(十三)-需求分析
15综合案例一:网上商城(十三)-代码实现(上)
16综合案例一:网上商城(十三)-代码实现(中)
17综合案例一:网上商城(十三)-代码实现(下)
18综合案例一:网上商城(十三)-阶段小结
19综合案例一:网上商城(十四)-阶段目标和系统全景
20综合案例一:网上商城(十四)-完整业务演示
21综合案例一:网上商城(十四)-小结
22综合案例二:在线教育平台(一)-需求分析与领域建模(上)
23综合案例二:在线教育平台(一)-需求分析与领域建模(中)
24综合案例二:在线教育平台(一)-需求分析与领域建模(下)
25综合案例二:在线教育平台(二)-回顾与目标
26综合案例二:在线教育平台(二)-代码实现(上)
27综合案例二:在线教育平台(二)-代码实现(中)
28综合案例二:在线教育平台(二)-代码实现(下)
29综合案例二:在线教育平台(二)-阶段小结
30综合案例二:在线教育平台(三)-回顾与目标
31综合案例二:在线教育平台(三)-代码实现(上)
32综合案例二:在线教育平台(三)-代码实现(中)
33综合案例二:在线教育平台(三)-代码实现(下)
34综合案例二:在线教育平台(三)-阶段小结
35综合案例二:在线教育平台(四)-回顾与目标
36综合案例二:在线教育平台(四)-代码实现(上)
37综合案例二:在线教育平台(四)-代码实现(中)
38综合案例二:在线教育平台(四)-代码实现(下)
39综合案例二:在线教育平台(四)-建立课程与讲师的组合关系
40综合案例二:在线教育平台(四)-阶段小结
41综合案例二:在线教育平台(五)-回顾与目标
42综合案例二:在线教育平台(五)-接口设计
43综合案例二:在线教育平台(五)-实现五种定价策略
44综合案例二:在线教育平台(五)-测试代码
45综合案例二:在线教育平台(五)-策略模式的核心价值
46综合案例二:在线教育平台(五)-阶段小结
47综合案例二:在线教育平台(六)-回顾与目标
48综合案例二:在线教育平台(六)-接口设计
49综合案例二:在线教育平台(六)-实现五种折扣策略
50综合案例二:在线教育平台(六)-测试代码
51综合案例二:在线教育平台(六)-阶段小结
52综合案例二:在线教育平台(七)-回顾与目标
53综合案例二:在线教育平台(七)-实现Order类
54综合案例二:在线教育平台(七)-测试代码
55综合案例二:在线教育平台(七)-对象关系模型
56综合案例二:在线教育平台(七)-阶段小结
57综合案例二:在线教育平台(八)-综合演示
58综合案例二:在线教育平台(八)-面向对象核心原则总结
59综合案例二:在线教育平台(八)-系统架构
60综合案例二:在线教育平台(八)-可能的扩展方向
61综合案例二:在线教育平台(八)-阶段小结
62总结与对比-两个案例的对比
63总结与对比-设计决策指南
64总结与对比-SOLID原则回顾
65总结与对比-策略模式总结
66总结与对比-学习建议
限时优惠中
开启学习之旅
扫码添加微信,开通课程权限
