《JAVA计算图形面积(圆形正方形长方形).pptx》由会员分享,可在线阅读,更多相关《JAVA计算图形面积(圆形正方形长方形).pptx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、王豐緒銘傳大學資訊工程學系問題基本資訊標題具有計算面積能力的形狀問題描述給一個形狀(可能是正方形、長方形或圓形)以及相關資料,請問面積是?目的讓同學練習多類別的設計(透過繼承與抽象類別,別多型),並轉換成物件模型與JAVA Code版本:2011/07/28提示請以UML圖型繪製本問題的物件模型以JAVA實作程式問題分析:掌握領域知識給一個形狀(含正方形、長方形及圓形)以及相關資料,請問面積是?學習單1:請同學整理相關領域知識面積?物件模型學習單2:請同學根據問題描述,尋找適當的物件模型給一個形狀(可能是正方形、長方形或圓形)以及相關資料,請問面積是?名詞形狀:正方形:Square長方形:Re
2、ctangle圓形:Circle邊長、半徑、面積:類別的成員類別之間的關係:運用歸納能力繼承繼承繼承Shape類別抽象類別不能產生物件(沒有具體足夠的資訊)資料成員面積:protected double area(任何的形狀都有面積)功能成員public void computeArea():計算面積(抽象動作)public double getArea():取得形狀的面積(具體動作)public void printArea():顯示形狀的面積(具體動作)Rectangle類別繼承Shape類別繼承相關的屬性和動作(protected,public)資料成員邊長:protected doub
3、le 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():計算圓形的
4、面積public Circle(double r):建立特定的圓形(建構元)public void setRadius(double r):設定新的半徑學習單3:JAVA Code學習任務請利用BlueJ撰寫本問題的JAVA Code,並且進行測試Shape類別public abstract class Shapeprotected double area;abstract public void computeArea();public double getArea()return area;public void printArea()System.out.println(Area is:
5、+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;繼承類別Squ
6、are類別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 c
7、omputeArea()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:請同學進行學習反思,你從此問題學到什麼?本次練習,你覺得設計一個類別需要考慮到?抽象類
8、別與其他類別的關係本次練習,你覺得類別的建立有哪些策略?從名詞找類別根據領域知識定義類別與資料成員根據領域知識定義類別的方法成員根據領域知識定義類別之間的關係反思(2/3)請同學進行學習反思,你從此問題學到什麼?本次練習,你覺得JAVA有哪些特性可以支援物件導向程式設計?何謂抽象類別?方法的覆載(overloading)反思(3/3)請同學進行學習反思,你從此問題學到什麼?本次練習,你覺得物件導向程式有哪些不錯的測試策略與技巧?本次練習,你覺得物件導向設計具有哪些優點?(以本問題為例,舉例具體說明)透過繼承簡化系統複雜度更清晰的問題模式與自然的計算邏輯容易測試與維護延伸學習請同學列舉其它與本問題相關的學習類別的繼承關係為何何謂抽象類別,抽象方法請同學就本次學習的結果,設計測驗題目抽象類別與方法抽象類別具有共用的資料與方法成員不能實際產生物件方法的覆載(Overloading)子類別的方法可以覆載父類別的相同名稱的方法