Scratch是MIT面向少年兒童設計的一款搭積木式的編程軟件。對零基礎的少年兒童(尤其針對8-16歲)及零基礎的成年人普及編程、編程入門具有重大意義。對于教育者來說更多的應該思考學習Scratch對學習其他編程語言(指敲代碼的編程語言)具有多大的幫助、具有什么意義。
經(jīng)過思索,我發(fā)現(xiàn)Scratch很多方面體現(xiàn)了當下很火的"面向?qū)ο?編程思想。主要體現(xiàn)在封裝、繼承、多態(tài)等方面。

1.封裝
在腳本面板中有一項"更多積木"的模塊,允許使用者構建自己的”積木塊“,相當于構建一個函數(shù),可以增加各種參數(shù)及文本標簽,如圖1所示。這個功能極大地豐富了Scrarh的創(chuàng)造性,使這個軟件變得強大,為使用者學習其他語言提供更多的準備工作。
當編輯好新的代碼塊之后,直接像其他積木塊一樣拖拽即可使用,體現(xiàn)了“”封裝的特性。

如下圖添加并定義了一個積木塊“沿著正方形跑”,并設置了一邊長參數(shù),將這個代碼塊加到角色身上,如圖2所示,角色就會沿著給定邊長的正方形路徑跑步。

運行程序效果如圖3,為了方便大家看清楚小貓的運動路徑,代碼中加入了畫筆功能。

2.繼承
Scratch的“繼承”特性主要體現(xiàn)在復制和克隆兩個方面。
1)復制帶代碼的角色
復制角色,能夠把代表一并復制。如圖4所示。體現(xiàn)了面向?qū)ο蟆袄^承”的特點。

2)克隆
通過“克隆”功能能夠?qū)崿F(xiàn)角色的“繼承”。這個功能很棒,能夠?qū)崿F(xiàn)豐富的效果,如游戲《飛機大戰(zhàn)》中的各種飛機。如圖5克隆對象,點擊它還可以再次生成克隆對象。也就是說經(jīng)點擊被克隆的功能本身也被“繼承了”。

3.多態(tài)
1)復制帶代碼的角色——之后進行修改
如圖6所示, 在復制的對象中體現(xiàn)多態(tài),只需要添加或修改被復制對象的部分代碼。

2)與發(fā)送消息事件結合,不同對象不同反應
復制對象,然后對復制的對象的代碼進行個性化編輯,也能體現(xiàn)“多態(tài)”特點,如圖7、圖8、圖9所示。



3)通過“克隆”功能體現(xiàn)
當作為克隆對象出現(xiàn)的時候執(zhí)行不同的代碼也體現(xiàn)了“多態(tài)”的特點,如圖10所示。

4.實例化
通過克隆、復制實現(xiàn)增加角色的做法也可以理解成對象實例化的過程。通過自定義新的積木塊也可以完成實例化的過程,如圖11所示。

綜上,Scratch在封裝、繼承、多態(tài)、實例化等方面體現(xiàn)了"面向?qū)ο?編程思想,能為使用者過度到其他語言學習(如Python)提供極大的幫助。