南港高中高慧君老師 2012.3.30( 五 ) 9:00~12:00. 英國肯特大學所發表的自由軟體。 它是程式設計教學軟體,可以用來學習 Java 語法與物件導向程式設計概念。 你可以使用 Greenfoot 來開發互動遊戲。 特別適合 14 歲以上的青少年使用。

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

面向对象与设计模式 RD 常见编程范式介绍  并行编程 - Process-orientedProcess-oriented  组件编程 - Component-basedComponent-based  事件驱动 - Service-oriented,Time-drivenService-orientedTime-driven.
面向对象程序设计 、. 第二章 面向对象的分析与设计 学习目标 1 确定系统中的对象 2 确定对象的属性及操作 3 测试对象的有效性 4 区分对象和类 5 了解面向对象的编程和过程化编程之间的区别 6 了解封装的主要好处 7 了解软件开发的主要步骤.
多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第 9 章 物件的建構.
项目7 面向对象高级.
项目6 通用堆栈.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
面向对象的程序设计(一).
第一章 面向对象程序设计.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
類別與物件 Class & Object.
類別的繼承-一般關係: 繼承是宣告的類別繼承現存類別的部份或全部的成員資料和方法 , 新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法
Ch07 介面與多重繼承 物件導向程式設計(II).
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
第三章 控制结构.
外观模式.
利用共同供應契約 辦理大量訂購流程說明.
What is this animal?.
物件導向程式設計 (Object-Oriented rogramming)
Classes Lecturer: 曾學文.
CHAPTER 9 建構方法 ROBERT.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
Java 程式設計 講師:FrankLin.
程式設計實作.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
面向对象程序设计 、.
Java程序设计 第9章 继承和多态.
C#面向对象程序设计 $7 继承和多态性.
并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7
郑晟 昆明理工大学 云南省计算机技术应用重点实验室
C/C++/Java 哪些值不是头等程序对象
資訊學科中心研習 JAVA程式設計專題 臺北市立大理高級中學 黃世隆 2019/2/23.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
简单工厂模式.
第14章 外观模式 Deng Song
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章 Java基本语法 讲师:复凡.
第十二章 学习使用Ant Apache Ant是一个基于Java的构建工具,它可以 会构建多种项目,但是目前主要被用于Java项目 的构建, Ant是用Java语言编写,可以在多个操 作系统中运行,目前在绝大部分的Java开源项目 中,都选择使用Ant作为构建项目的工具,Ant已 经成为Java开源项目构建的事实标准,而且越来.
C++复习2----类与对象.
王豐緒 銘傳大學資訊工程學系 問題:判斷是否為長方形.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Object-Oriented Programming in C++ 第二章 类和对象
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
Review 1~3.
辅导课程十一.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
第二章 Java基本语法 讲师:复凡.
方格紙上畫正方形.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

南港高中高慧君老師 ( 五 ) 9:00~12:00

英國肯特大學所發表的自由軟體。 它是程式設計教學軟體,可以用來學習 Java 語法與物件導向程式設計概念。 你可以使用 Greenfoot 來開發互動遊戲。 特別適合 14 歲以上的青少年使用。

類別關係圖圖 場景 執行控制列

Greenfoot 使用 Java 物件導向程式語言。 類別 (class) 是定義物件的基礎,用來描述物件 的特性與行為。

以「 Wombat ( 袋熊 ) 」類別為例,它用來描述 袋熊這類物件的行為和特性。 類別定義完成後,就可以根據類別來產生物 件,根據類別所產生的物件,稱為實體 (instance) 。

類別中所定義的行為稱為方法 (method) 。 在物件實體上按右鍵檢視物件所具備的方法

方法前面的關鍵字,如 void 、 boolean 、 int 等, 代表方法的傳回值型態,即這個方法被呼叫 時,會傳回什麼的資訊。 void 代表這個方法沒有傳回值。 int 代表這個方法將傳回一個整數。 boolean 代表這個方法將傳回一個布林值。

方法名稱後面小括弧內的資訊,稱為參數, 即這個方法被呼叫時,需傳入什麼資訊。 void act( ) :代表呼叫時,不需傳遞額外資訊。 void setDirection(int direction) :代表呼叫時, 需傳一個整數資料給 setDirection 這個方法, 而且 setDirection 方法內部以 direction 這個名稱 來代表所接收的參數值。

由「執行控制列」也可以呼叫物件中的方法。 按「單步執行」按鈕: 會呼叫每一個物件的 act 方法一次。 按「執行」按鈕: 會重複呼叫每一個物件的 act 方法。

如果把整個 Greenfoot 的場景視為一個微世界 (microworld ),那麼微世界中的每一個物件 就像是演員,我們程式要操弄的也就是這些 演員間的互動方式。 放到微世界中的物件(演員)都有 Act() 方法。 不同類別物件的 Act() 方法都各自定義自己的 程式功能,所以執行不同類別物件的 Act() 方 法將產生不同的結果。

以袋熊的 Act() 方法為例,其程式功能如下: (1) 若袋熊剛好坐在樹葉上,那就吃了樹葉。 (2) 若袋熊沒遇到邊界,那就往前走; (3) 若遇到邊界就左轉。

在沙灘上有一隻螃蟹,會不停地往右走。 你可以用方向鍵控制它的方向。 螃蟹會吃掉沙灘上的蟲蟲。 螃蟹遇到龍蝦就會被它吃掉。

專案中所包含的類別有 Actor 、 Animal 、 Crab Actor 是多數專案均會具備的類別。 Animal 與 Actor 間的連結符號代表繼承,所以 Animal 類別繼承 Actor 類別。同樣地, Crab 繼 承 Animal 。

Crab 可以繼承使用在 Animal 中定義的方法。 boolean atWorldEdge() void move() void turn(int angle) boolean canSee(java.lang.Class clss) void eat(java.lang.Class clss)

編輯 Crab 類別的 act() 方法。 public void act() { move(); }

public void act() { turn(10); } 編輯 Crab 類別的 act() 方法。

public void act() { move(); turn(10); } 編輯 Crab 類別的 act() 方法。

程式語法:單向選擇結構 if ( 條件式 ) { 程式敘述 ; }

public void act() { move(); if (atWorldEdge()) { turn(10); } 編輯 Crab 類別的 act() 方法。

在 Animal 類別中,按下滑鼠右鍵,從選單中 選取「新建子類別」。 輸入類別名稱「 Worm 」 ( 注意:類別名稱的命名 慣例以大寫字母開始 ) 選取圖片「 worm.png 」

判斷是否遇見某類別的物件 boolean canSee (java.lang.Class clss) 移除指定某類別的物件 void eat (java.lang.Class clss)

if (canSee(Worm.class)) { eat (Worm. class) ; } 修改 Crab 類別的 act() 方法。

修正 CrabWorld 類別,讓專案一開始啟動時, 也能在場景中自動建立一些角色。 在 CrabWorld 建構子中加入以下指令: addObject(new Crab(), 150, 100); 試著增加 3 隻蟲蟲在不同的位置上。 addObject(new Worm(), 100, 200);

在 Greenfoot 類別中有一個方法,用於偵測某 鍵盤是否被按下,如下: static boolean isKeyDown(String key) 傳回值是 boolean ,所以可做為 if 的條件式 判斷使用者是否按下左鍵 Greenfoot.isKeyDown(“left”)

增加 Crab 類別中 act() 方法的程式碼。 if (Greenfoot.isKeyDown("left")) { turn(5); }

為了讓遊戲更有趣,所以增加會吃螃蟹的龍 蝦到專案中,我們希望龍蝦追逐螃蟹,而螃 蟹追逐蟲蟲。 當螃蟹被龍蝦抓到時,結束遊戲。 Greenfoot.stop();

當龍蝦吃掉螃蟹或螃蟹吃掉蟲蟲時,播放適 放的音效,會讓遊戲更生動。 在專案的 sounds 資料夾中,找到兩個聲音檔 「 au.wav 」及「 slurp.wav 」 找到龍蝦吃掉螃蟹那一段程式,增加音效。 Greenfoot.playSound(“au.wav”); 找到螃蟹吃掉蟲蟲那一段程式,增加音效。 Greenfoot.playSound(“slurp.wav”);