已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
問題:形狀的面積問題:形狀的面積 王豐緒 銘傳大學資訊工程學系 問題基本資訊 標題 具有計算面積能力的形狀 問題描述 給一個形狀 ( 可能是正方形、長方形或圓形 ) 以 及相關資料,請問面積是 ? 目的 讓同學練習多類別的設計(透過繼承與抽象類別 ,別多型),並轉換成物件模型與JAVA Code版本 :2011/07/28 提示 請以UML圖型繪製本問題的物件模型 以JAVA實作程式 問題分析:掌握領域知識 給一個形狀(含正方形、長方形及圓形)以 及相關資料,請問面積是? 學習單1:請同學整理相關領域知識 面積? 物件模型 學習單2:請同學根據問題描述,尋找適當 的物件模型 給一個形狀(可能是正方形、長方形或圓形)以及相關 資料,請問面積是? 名詞 形狀: 正方形:Square 長方形:Rectangle 圓形:Circle 邊長、半徑、面積:類別的成員 類別之間的關係:運用歸納能力 繼承 繼承 繼承 Shape類別 抽象類別 不能產生物件 (沒有具體足夠的資訊) 資料成員 面積:protected double area (任何的形狀都有面積) 功能成員 public void computeArea():計算面積(抽象動作) public double getArea():取得形狀的面積 (具體 動作) public void printArea():顯示形狀的面積 (具體 動作) Rectangle類別 繼承Shape類別 繼承相關的屬性和動作 (protected, public) 資料成員 邊長:protected double sideX 邊長: protected double sideY 功能成員 實作public void computeArea():計算長方形 的面積 public void setSideLength(double x, double y) :設定新的邊長 Square類別 繼承Rectangle類別 資料成員 無 功能成員 public Square(double n):建立特定的正方形 (建構元) public void setSideLength(double l) :設定新 的邊長 Circle類別 繼承Shape類別 資料成員 半徑:radius 功能成員 實作public void computeArea():計算圓形的 面積 public Circle(double r):建立特定的圓形(建 構元) public void setRadius(double r) :設定新的 半徑 學習單3: JAVA Code 學習任務 請利用BlueJ撰寫本問題的JAVA Code, 並且進行測試 Shape類別 public abstract class Shape protected double area; abstract public void computeArea(); public double getArea() return area; public void printArea() System.out.println(“Area is:“ + area); 定義抽象類別 定義抽象動作 Rectangle類別 public class Rectangle extends Shape protected double side_X , side_Y; public Rectangle() side_X = 0; side_Y=0 ; public Rectangle(double x, double y) side_X = x ; side_Y = y; public void computeArea() area = side_X * side_Y ; public void setSideLength(double x, double y) side_X = x ; side_Y=y; 繼承類別 Square類別 public class Square extends Rectangle public Square(double n) side_X = n ; side_Y= n; public void setSideLength(double l) side_X= l ; side_Y = l; Circle類別 public class Circle extends Shape private double radius; final private double PI = 3.414; public Circle() radius = 0; public Circle(double r) radius = r ; public void computeArea() area = Math.pow(radius,2.0)*PI; public void setRadius(double r) radius = r ; 類別多型 特過類別繼承階層,一個物件變數可以指 到不同的類別 Shape s ; s = new Rectangle(2, 2); puteArea(); s.printArea(); s = new Square(2); puteArea(); s.printArea(); s = new Circle(2); puteArea(); s.printArea(); 反思(1/3) 學習單4:請同學進行學習反思,你從此 問題學到什麼? 本次練習,你覺得設計一個類別需要考慮到 ? 抽象類別 與其他類別的關係 本次練習,你覺得類別的建立有哪些策略? 從名詞找類別 根據領域知識定義類別與資料成員 根據領域知識定義類別的方法成員 根據領域知識定義類別之間的關係 反思(2/3) 請同學進行學習反思,你從此問題學到什 麼? 本次練習,你覺得JAVA有哪些特性可以支援 物件導向程式設計? 何謂抽象類別? 方法的覆載(overloading) 反思(3/3) 請同學進行學習反思,你從此問題學到什 麼? 本次練習,你覺得物件導向程式有哪些不錯 的測試策略與技巧? 本次練習,你覺得物件導向設計具有哪些優 點?(以本問題為例,舉例具體說明) 透過繼承簡化系統複雜度 更清晰的問題模式與自然的計算邏輯 容易測試與維護
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024正式的地区代理合同范文
- 工程合同功能解析
- 水利工程维修贷款合同
- 2024医院药品供销合同
- 农业领域合作协议范本
- 2024年咨询顾问合作简单协议书
- 彩色钢板工程承包协议书
- 集装箱海运合同范本
- 2024建筑业合同范本范文
- 2024个人房产转让合同
- 剪映:手机短视频制作-配套课件
- 西气东输二线25标段山岭隧道内管道安装技术
- 小学综合实践活动-绿色出行教学课件设计
- 防校园欺凌-课件(共28张PPT)
- 第6章 智能网联汽车测评技术
- 单向板结构设计
- 普通高等学校学生转学申请表
- 房租、水、电费(专用)收据Excel模板
- 习近平总书记关于教育的重要论述研究学习通章节答案期末考试题库2023年
- 重症急性胰腺炎ppt恢复课件
- 2022江苏省沿海开发集团限公司招聘23人上岸笔试历年难、易错点考题附带参考答案与详解
评论
0/150
提交评论