Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系

Scratch是MIT面向少年儿童设计的一款搭积木式的编程软件。对零基础的少年儿童(尤其针对8-16岁)及零基础的成年人普及编程、编程入门具有重大意义。对于教育者来说更多的应该思考学习Scratch对学习其他编程语言(指敲代码的编程语言)具有多大的帮助、具有什么意义。

经过思索,我发现Scratch很多方面体现了当下很火的"面向对象"编程思想。主要体现在封装、继承、多态等方面。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第1张图片

1.封装

在脚本面板中有一项"更多积木"的模块,允许使用者构建自己的”积木块“,相当于构建一个函数,可以增加各种参数及文本标签,如图1所示。这个功能极大地丰富了Scrarh的创造性,使这个软件变得强大,为使用者学习其他语言提供更多的准备工作。

当编辑好新的代码块之后,直接像其他积木块一样拖拽即可使用,体现了“”封装的特性。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第2张图片
图1 更多积木/制作新的积木

如下图添加并定义了一个积木块“沿着正方形跑”,并设置了一边长参数,将这个代码块加到角色身上,如图2所示,角色就会沿着给定边长的正方形路径跑步。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第3张图片
图2  定义新的代码块及调用举例

运行程序效果如图3,为了方便大家看清楚小猫的运动路径,代码中加入了画笔功能。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第4张图片
图3 调用自定义积木的效果图

2.继承

Scratch的“继承”特性主要体现在复制和克隆两个方面。

1)复制带代码的角色

复制角色,能够把代表一并复制。如图4所示。体现了面向对象“继承”的特点。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第5张图片
图4  复制体现“继承”特点举例

2)克隆

通过“克隆”功能能够实现角色的“继承”。这个功能很棒,能够实现丰富的效果,如游戏《飞机大战》中的各种飞机。如图5克隆对象,点击它还可以再次生成克隆对象。也就是说经点击被克隆的功能本身也被“继承了”。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第6张图片
图5 克隆模块举例

3.多态

1)复制带代码的角色——之后进行修改

如图6所示, 在复制的对象中体现多态,只需要添加或修改被复制对象的部分代码。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第7张图片
图6 在复制对象中体现多态

2)与发送消息事件结合,不同对象不同反应

复制对象,然后对复制的对象的代码进行个性化编辑,也能体现“多态”特点,如图7、图8、图9所示。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第8张图片
图7 消息事件体现多态效果图
Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第9张图片
图8  第一个复制角色代码图
Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第10张图片
图9  第二个复制角色代码

3)通过“克隆”功能体现

当作为克隆对象出现的时候执行不同的代码也体现了“多态”的特点,如图10所示。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第11张图片
图10  通过克隆体现“多态”特点

4.实例化

通过克隆、复制实现增加角色的做法也可以理解成对象实例化的过程。通过自定义新的积木块也可以完成实例化的过程,如图11所示。

Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系_第12张图片
图11 自定义代码块实例化举例

综上,Scratch在封装、继承、多态、实例化等方面体现了"面向对象"编程思想,能为使用者过度到其他语言学习(如Python)提供极大的帮助。

你可能感兴趣的:(Scratch中“面向对象”思想的体现——儿童积木编程与代码编程的联系)