一、實踐目的
1.掌握類的定義,對象的創建。
2.掌握實現封裝、繼承、多態的方法,掌握各種修飾符的使用。
3.掌握將對象數組作為方法的參數和返回值。
4.掌握抽象類與接口的概念及實現,理解動態綁定機制。
5.掌握通過組合與繼承,實現代碼可復用。
?
二、實踐要求
綜合使用封裝、繼承、多態、抽象類與接口、組合及繼承等面向對象知識,給出所選項目的面向對象設計與實現。
?
三、項目需求
所選項目名稱:矩形類
設計一個名為Rectangle的類表示矩形。這個類包括:
- 兩個名為width和height的double型數據域,分別表示矩形的寬和高。默認值為1.
- 創建默認矩形的無參構造方法。
- 一個創建width和height為指定值的矩形的構造方法。
- 一個名為getArea()的方法,返回這個矩形的面積。
- 一個名為getPerimeter()的方法,返回這個矩形的周長。
畫出該類的UML圖。實現這個類。編寫一個測試程序,創建兩個Rectangle對象---一個矩形的寬為4而高為40,另一個矩形的寬為3.5而高為35.9。顯示每個矩形的寬、高、面積和周長。
四、項目設計方案
?????? 首先,定義一個矩形類,并定義width和height。并在矩形類中定義getArea()和getPerimeter()方法。再定義一個display()返回方法。主類TestRectangle測試矩形類。
五、核心算法詳細設計 ?????
1 、創建 Rectangle 類
根據試驗內容可知,此次做的是矩形類,包括名為width和height的double型數據域,一個名為getArea()的方法,返回這個矩形的面積。一個名為getPerimeter()的方法,返回這個矩形的周長。
class Rectangle//定義一個矩形類
{
??? double width, length;//定義兩個整形變量width,length;
??? Rectangle(){width=1;length=1;}//無參的構造函數
??? Rectangle( double z, double w)//z、w表示矩形的長和寬
??? {
??? width=z;
??? length=w;//將z,w分別賦值給width,length
??? }
???????
??? public double getArea()//創建getArea()方法
??? {
???
??? ? return width*length;
???
??? }
??? public double getPerimeter()//創建getPerimeter()方法
??? {
??????? double p;
??? p=width*2+length*2;
??? return p;
??? }
?
2 、矩形類的輸出
?????? 另外需要一個方法,輸出這些值。注意getArea()和getPerimeter()是方法,不能直接調用,方法中必須有返回值。
如,
void display()//矩形類的display()方法
??? {??????
??????? System. out .println("矩形長="+width+"寬="+length+"面積="+ this .getArea()+"周長="+p);//輸出矩形上一個點的坐標,矩形的長和寬
??? }就錯了。P是局部變量。
應該改為:
void display()//矩形類的display()方法
??? {??????
??????? System. out .println("矩形長="+width+"寬="+length+"面積="+ this .getArea()+"周長="+ this .getPerimeter());//輸出矩形上一個點的坐標,矩形的長和寬???
??? }
?
3 、功能測試
剩下的就開始對主函數main()的編寫了。
?????? public class TestRectangle {
???
??? public static void main(String args[])
??? {
??????? Rectangle r1= new Rectangle(4,40);//為參數創建了一個矩形的對象,并賦值給引用
??????? r1.display();//對象r1調用display()方法
??????? Rectangle r2= new Rectangle(3.5,35.9);
??????? r2.display();//對象r2調用display()方法
??? }
}//201303014044計科高職13-2曲承玉
?
?
六、完整源碼
?????? 完整源碼:給出完整的源代碼。如:
class Rectangle//定義一個矩形類
{
??? double width, length;//定義兩個整形變量width,length;
??? Rectangle(){width=1;length=1;}//無參的構造函數
??? Rectangle( double z, double w)//z、w表示矩形的長和寬
??? {
??? width=z;
??? length=w;//將z,w分別賦值給width,length
??? }
???????
??? public double getArea()//創建getArea()方法
??? {
???
??? ? return width*length;
???
??? }
??? public double getPerimeter()//創建getPerimeter()方法
??? {
??????? double p;
??? p=width*2+length*2;
??? return p;
??? }
??? void display()//矩形類的display()方法
??? {??????
??????? System. out .println("矩形長="+width+"寬="+length+"面積="+ this .getArea()+"周長="+ this .getPerimeter());//輸出矩形上一個點的坐標,矩形的長和寬???
??? }
}
?
???
public class TestRectangle {
???
??? public static void main(String args[])
??? {
??????? Rectangle r1= new Rectangle(4,40);//為參數創建了一個矩形的對象,并賦值給引用
??????? r1.display();//對象r1調用display()方法
??????? Rectangle r2= new Rectangle(3.5,35.9);
??????? r2.display();//對象r2調用display()方法
??? }
}//201303014044計科高職13-2曲承玉
????????????????????????
??????
七、實踐總結
?????? 本次試驗,主演了解了方法的創建和調用。并明白局部變量不能直接調用。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
