* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師 07/16/96 98學年度資訊科技概論教學評量經驗分享 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師 *
物件導向程式設計概念 如堆積木,透過堆積木可以組成101大樓、巴黎鐵塔、倫敦鐵橋、埃及金字塔…. 。 把程式模組當作是電子IC,每一個封裝且功能獨立完整的模組,透過不同組合,就可產生不一樣的功能。 2
課程規劃 抽象化:將一般外界的事物,加以對應成電腦中的物件。 由物件與類別介紹起,透過範例說明,使學生能具有基本的概念。 透過教學評量的實施,讓學生舉一反三的方式了解學生對課程內容理解程度。
類別與物件有何關係呢? 類別可用來指一個集合的統稱,如人類、動物、交通工具等。 類別是物件的設計藍圖或樣版,我們希望物件呈現那些,就必須在藍圖定義。 依據藍圖,我們可以塑造出無限個物件,就好像飛機製造商生產同一型的飛機只要設計與規劃好該款型式(類別),之後生產線就可以生產出許多一樣的飛機(物件)。
類別與物件有何關係呢? 圖表設計:作者 飛機圖片來源:維基百科
類別與物件有何關係呢? 屬性(Attribute):用來描述物件的共同特性或資料,例如飛機類別之屬性:載客量、掛載重量、長度、翼展、高度、翼面積、空重、載重、可用載重、最大起飛重量、最高速度、巡航速度、航程、實用升限、爬升率、翼負荷。 方法(Method):描述物件的行為或作用在物件的程序,而類別的行為通常也包含外部存取物件內部資料的方法,例如:飛機類別之方法:起飛、爬升、降落、巡航、雷達導航,顯示油耗等。
類別的說明
身份證號碼、姓名、性別、地址與行動電話。 物件的抽象化 人類真實世界類別特性: 膚色、髮色、性別、種族、國籍、戶籍、視力、聽力、長相、三圍尺寸、身高、體重、食量、學歷、病歷、經歷、興趣、啫好、專長、習慣、家庭狀況、婚姻、所得狀況、證照、獲奬記錄、犯罪記錄、信用評等、服役狀況、姓名、地址、電話、行動電話、電子郵件、身份證號碼、職業、職稱、工作地點…等等。 資訊系統依需求抽象化: 身份證號碼、姓名、性別、地址與行動電話。 圖片來源:維基百科http://zh.wikipedia.org/wiki/Wiki
程式語法說明 類別的建立 類別屬性的定義 類別方法的定義 建立物件的方法 存取物件的資料
範例程式 class ClassObj { public static void main(String[] args) user student1 = new user(); student1.name = "多啦A夢"; student1.tel = "5751234"; student1.address = "嘉義縣阿里山鄉神木村1001號" ; student1.ShowInfo(); } class user protected String name; //姓名 protected String tel; //電話 protected String address; //地址 protected void ShowInfo() System.out.println("姓名:" + name ); System.out.println("電話:"+tel); System.out.println("地址:"+ address);
程式執行結果
教學評量架構 本單元約需2節課,評量為1小時,基礎級採紙筆測驗、進階級採上機測試。 本單元採形成性評量:主要目的是用在教學過程一段落後,經由測驗來發現學生學習狀況,以作為教師改進教學的參考依據。
教學評量架構 評量等級 評量內容 測驗時間 單元理解程度 整體理解程度 (3個單元加總) 基礎 物件導向觀念:類別、建立類別的資料(特性)與行為(方法)。 15分鐘 40分 分數<=50,不佳 51<=分數<=70,中等 71<=分數<=89,優等 分數>=90,特優 抽象化類別 30分 進階 程式實作 30分鐘
教學評量內容I 1.請學生舉生活上的例子,定義一個類別、建立類別的資料(屬性)與行為(方法),並說明如何透過類別建立物件。類別(10分)、類別的屬性與方法(15分)、物件(三個例子,各5分)
教學評量內容I 答案: 定義類別:公眾人物。 定義公眾人物的屬性: 姓名、身高、體重 …等;方法:唱歌 、逛街…等。 依據類別公眾人物,我 們可建立多個物件 ,範例中產生三個 物件,分別可以描 述三個公眾人物如 :林志玲、王建民 、侯佩岑,所具有 的資料(特性)與行為 (方法)。
教學評量內容II 2.請舉例子,如何將類別抽象化,同學可先舉例一個真實存在的類別,並將其所需的資料抽離,建立物件(30分)。
教學評量內容II 答案: 地圖是抽象化的一種例子,地圖是真實地形的抽象化結果,上面只需提供使用者所需的資訊(方向、距離、街道名稱),如右上圖之街道地圖 。 右下圖之真實地形存在著巨細靡遺的資訊:如某個地方有幾棵樹(種類、高度…)、幾棟建築物(樓高、日式風格、巴洛克風格…)、幾條馬路(寬度、長度、路名…)、各式地形地物等等。
教學評量內容III 3.1請在上課範例程式的類別user 屬性,加入身高height、體重weight。 3.2撰寫方法印出身高與體重。 (每個要求10分,共30分)。
教學評量內容III-新增或修改之程式碼,如紅色字。 /*範例程式ClassObject.java,說明如何由類別建立物件*/ class ClassObject { public static void main(String[] args) user student1 = new user(); student1.name = "多啦A夢"; student1.tel = "5751234"; student1.address = "嘉義縣阿里山鄉神木村1001號" ; student1.height = 172.6; student1.weight = 70.1 ; student1.ShowInfo(); student1.ShowWH(); } class user protected String name; //姓名 protected String tel; //電話 protected String address; //地址 protected double height; //身高 protected double weight; //體重 protected void ShowInfo() System.out.println("姓名:" + name ); System.out.println("電話:"+tel); System.out.println("地址:"+ address); protected void ShowWH() System.out.println("身高:" + height+ "公分" ); System.out.println("體重:"+weight+ "公斤");
教學評量內容III 執行結果
問題與討論 ThankYou!!