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

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

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

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

1.封装

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

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

图1 更多积木/制作新的积木

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

图2  定义新的代码块及调用举例

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

图3 调用自定义积木的效果图

2.继承

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

1)复制带代码的角色

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

图4  复制体现“继承”特点举例

2)克隆

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

图5 克隆模块举例

3.多态

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

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

图6 在复制对象中体现多态

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

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

图7 消息事件体现多态效果图

图8  第一个复制角色代码图

图9  第二个复制角色代码

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

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

图10  通过克隆体现“多态”特点

4.实例化

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

图11 自定义代码块实例化举例

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我不是算命先生,却对占卜有了疑惑——如何论证“占卜前提”的正确与否

    事出有因,我对《周易》感兴趣了很多年。只是觉得特别有趣,断断续续学习了一些皮毛。这几天又偶然接触到了《梅花易数》,觉得很是精彩,将五行八卦天干地支都串联了起来。...

    一石匠人
  • 【Scratch编程与艺术-1】简单与重复的艺术

    利用Scratch的“图章”功能,能够实现非常美的效果。我们可以称之为简单的艺术。我们需要做的就是把下面的代码加在某一对象身上。点击开始按钮,就可以静静地欣赏亲...

    一石匠人
  • 《RUN!MOUSE!》Scratch声控游戏案例

    昨天晚上突然想到如果用声音控制一款游戏会是什么感觉。虽然手机APP已经有了声音控制火柴人跳高的先例,但想想通过积木编程Scratch实现更加丰富的效果也是一件让...

    一石匠人
  • iOS中相同IP,不同端口,session失效的问题

    公司在https服务器(端口443)进行正常登陆业务等处理 https://ip1:443/ 然后在端口444服务器进行资料文件上传等处理 https:/...

    freesan44
  • GitHub 多人协作开发 三种方式:

    架构师专栏
  • 如何写出优质干净的代码

    先列举出编写干净代码的一些好处,再提出6个技巧用于编写干净代码,供开发者进行参考学习。

    IT大咖说
  • 关于“开源”的思考

    最近,我经历了一次有意思的讨论。讨论的主题是代码开源,尤其是指那些用作商业用途的代码,比如用于创造你自己的产品或者服务的代码。以下就是这次讨论所得的,对“开源”...

    哲洛不闹
  • 开源项目源码阅读方法

    我先说下自己的经历吧。 我比较完整的读过的有wordpress,ttserver(tokyotyrant+tokyocabinet),memcached,re...

    魏晓蕾
  • 你是否有过代码写的太烂不敢开源的经历?

    作为一个写了十几年代码的老司机,在入行不久会有这种心理,老是觉得自己写的代码见不得人,主要还是基础不牢固写出来的代码属于见光死的程度,从测试人员那边的感觉就能测...

    程序员互动联盟
  • 《实战java高并发程序设计》源码整理及读书笔记

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 不要被标题吓到,...

    我是十三

扫码关注云+社区

领取腾讯云代金券