Scratch是MIT面向少年儿童设计的一款搭积木式的编程软件。对零基础的少年儿童(尤其针对8-16岁)及零基础的成年人普及编程、编程入门具有重大意义。对于教育者来说更多的应该思考学习Scratch对学习其他编程语言(指敲代码的编程语言)具有多大的帮助、具有什么意义。
经过思索,我发现Scratch很多方面体现了当下很火的"面向对象"编程思想。主要体现在封装、继承、多态等方面。
1.封装
在脚本面板中有一项"更多积木"的模块,允许使用者构建自己的”积木块“,相当于构建一个函数,可以增加各种参数及文本标签,如图1所示。这个功能极大地丰富了Scrarh的创造性,使这个软件变得强大,为使用者学习其他语言提供更多的准备工作。
当编辑好新的代码块之后,直接像其他积木块一样拖拽即可使用,体现了“”封装的特性。
如下图添加并定义了一个积木块“沿着正方形跑”,并设置了一边长参数,将这个代码块加到角色身上,如图2所示,角色就会沿着给定边长的正方形路径跑步。
运行程序效果如图3,为了方便大家看清楚小猫的运动路径,代码中加入了画笔功能。
2.继承
Scratch的“继承”特性主要体现在复制和克隆两个方面。
1)复制带代码的角色
复制角色,能够把代表一并复制。如图4所示。体现了面向对象“继承”的特点。
2)克隆
通过“克隆”功能能够实现角色的“继承”。这个功能很棒,能够实现丰富的效果,如游戏《飞机大战》中的各种飞机。如图5克隆对象,点击它还可以再次生成克隆对象。也就是说经点击被克隆的功能本身也被“继承了”。
3.多态
1)复制带代码的角色——之后进行修改
如图6所示, 在复制的对象中体现多态,只需要添加或修改被复制对象的部分代码。
2)与发送消息事件结合,不同对象不同反应
复制对象,然后对复制的对象的代码进行个性化编辑,也能体现“多态”特点,如图7、图8、图9所示。
3)通过“克隆”功能体现
当作为克隆对象出现的时候执行不同的代码也体现了“多态”的特点,如图10所示。
4.实例化
通过克隆、复制实现增加角色的做法也可以理解成对象实例化的过程。通过自定义新的积木块也可以完成实例化的过程,如图11所示。
综上,Scratch在封装、继承、多态、实例化等方面体现了"面向对象"编程思想,能为使用者过度到其他语言学习(如Python)提供极大的帮助。