




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)項(xiàng)目3 類的設(shè)計(jì)與使用1) 實(shí)驗(yàn)?zāi)康模?)、掌握C#中類的結(jié)構(gòu)(2)、掌握構(gòu)造函數(shù)的使用方法(3)、熟練繼承和重載的使用2) 實(shí)驗(yàn)原理(1)類的定義類的定義是以關(guān)鍵字 class 開始,后跟類的名稱。類的主體,包含在一對(duì)花括號(hào)內(nèi)。下面是類定義的一般形式: 訪問修飾符 static class 類名 : 基類 ,接口序列 類成員 (2)構(gòu)造函數(shù)類的構(gòu)造函數(shù)是類的一個(gè)特殊的成員函數(shù),當(dāng)創(chuàng)建類的新對(duì)象時(shí)執(zhí)行。構(gòu)造函數(shù)的名稱與類的名稱完
2、全相同,它沒有任何返回類型。(3)類的繼承 語法:class DrevedClass:BaseClass 派生類成員如果類或結(jié)構(gòu)也派生自接口,則用逗號(hào)分隔列表中的基類和接口:class DrevedClass:BaseClass,IIntenface1,IIntenface2 派生類成員(4) 重載指在同一作用域內(nèi),可以有一組具有相同函數(shù)名,不同參數(shù)列表的函數(shù),這組函數(shù)被稱為重載函數(shù)。3) 主要儀器及耗材PC、VS2010/2012/20154) 實(shí)驗(yàn)內(nèi)容和步驟實(shí)驗(yàn)內(nèi)容1:圖
3、書類(1)實(shí)驗(yàn)題目: 創(chuàng)建一個(gè)描述圖書信息的類并測試。類中應(yīng)保存有圖書的書號(hào)、標(biāo)題、作者、出版社、價(jià)格等信息。(2)實(shí)驗(yàn)步驟:步驟1:定義圖書類Book,Book類中包含isbn(書號(hào))、title(標(biāo)題)、author(作者)、press(出版社)、price(價(jià)格)等私有字段。由于對(duì)一本書來說,書號(hào)是唯一的,因此,isbn字段應(yīng)聲明為只讀的。步驟2:為Book類中的每個(gè)字段定義相應(yīng)的屬性,由于isbn字段只讀的,其相應(yīng)屬性也應(yīng)該是只讀的。步驟3:為Book類定義兩個(gè)構(gòu)造函數(shù),其中,一個(gè)構(gòu)造函數(shù)將所有字段都初始化為用戶指定的值,另一個(gè)構(gòu)造函數(shù)只要求用戶指定有關(guān)書號(hào)的信息,它將調(diào)用上一個(gè)構(gòu)造函
4、數(shù)初始化對(duì)象,初始化時(shí),價(jià)格取0,除書號(hào)的其他信息取“未知”。步驟4:為Book類定義方法Show,Show方法用于顯示圖書的所有信息。步驟5:編寫Main方法測試Book類,Main方法中分別使用上述兩個(gè)構(gòu)造函數(shù)創(chuàng)建Book對(duì)象。 (3)參考代碼:/Test3_1.csusing System;class Bookprivate readonly string isbn; /書號(hào)private string title; /標(biāo)題private string author; /作者private string press; /出版社private int price; /價(jià)格public Bo
5、ok(string isbn):this(isbn,"未知","未知","未知",0)/構(gòu)造函數(shù)間的調(diào)用public Book(string isbn,string title,string author,string press,int price)this.isbn=isbn;this.title=title;this.author=author;this.press=press;this.price=price;public string ISBNget return isbn; public string Titleget r
6、eturn title; set title=value; public string Authorget return author; set author=value; public string Pressget return press; set press=value; public int Priceget return price; set price=value; public void Show()Console.WriteLine("書號(hào): 0",isbn);Console.WriteLine("標(biāo)題: 0",title);Conso
7、le.WriteLine("作者: 0",author);Console.WriteLine("出版社:0",press);Console.WriteLine("價(jià)格: 0",price);class Test3_1static void Main() Book book1=new Book("978-7-111-23423-4"); book1.Show(); Console.WriteLine(); book1.Title="C#程序設(shè)計(jì)(C#2.0版)" book1.Author=&quo
8、t;劉慧寧" book1.Press="機(jī)械工業(yè)出版社" book1.Price=32; book1.Show(); Console.WriteLine(); book1=new Book("978-7-302-15800-4","Java程序設(shè)計(jì)","溫秀梅","清華大學(xué)出版社",29); book1.Show(); 實(shí)驗(yàn)內(nèi)容2: 簡單幾何圖形描述(1)實(shí)驗(yàn)題目:根據(jù)幾何圖形的組合與繼承關(guān)系定義用于描述點(diǎn)、直線、三角形、四邊形、正方形、圓等幾何圖形的類(或結(jié)構(gòu))。要求首先定義一個(gè)幾何
9、圖形接口描述所有幾何圖形的共有特性,上述幾何圖形都必須現(xiàn)實(shí)該接口,并且其中用于描述點(diǎn)的類型最好定義為結(jié)構(gòu)。(2)實(shí)驗(yàn)步驟: 步驟1:定義幾何圖形接口Shape。Shape接口中包含屬性Color,用于讀取和設(shè)置幾何圖形的顏色;包含方法Draw、Erase、Move,用于繪制、擦拭、移動(dòng)幾何圖形。由于屬性Color的類型無法用基本數(shù)據(jù)類型準(zhǔn)確描述,程序中還需要另外定義一個(gè)表示顏色的枚舉類型CColor(實(shí)驗(yàn)上,.NET框架類庫中定義有一個(gè)Color結(jié)構(gòu),它可以更好地表示顏色,你們可以直接使用它)。步驟2:定義點(diǎn)結(jié)構(gòu)Point實(shí)現(xiàn)Shape接口。Point結(jié)構(gòu)中除實(shí)現(xiàn)Shape接口的所有成員外,還
10、必須包含兩個(gè)int型私有字段x、y及相應(yīng)屬性,它們用于表示點(diǎn)的坐標(biāo)。另外,還應(yīng)為Point結(jié)構(gòu)定義構(gòu)造函數(shù),并重寫方法ToString。步驟3:定義直線類Line實(shí)現(xiàn)Shape接口。Line類中除實(shí)現(xiàn)Shape接口的所有成員外,還必須包含兩個(gè)Point型私有字段point1、point2及相應(yīng)屬性,它們用于表示直線兩個(gè)頂點(diǎn)的坐標(biāo)。另外,還應(yīng)為Line類定義構(gòu)造函數(shù),并重寫方法ToString。步驟4:定義三角形類Triange實(shí)現(xiàn)Shape接口。Triangle類中除實(shí)現(xiàn)Shape接口的所有成員外,還必須包含三個(gè)Point型私有字段及相應(yīng)屬性,它們用于表示三角形三個(gè)頂點(diǎn)的坐標(biāo)。另外,還應(yīng)為tr
11、iangle類定義方法Area(求面積)和構(gòu)造函數(shù),并重寫方法ToString。步驟5:定義四邊形類Quadrilateral實(shí)現(xiàn)Shape接口。Quadrilateral類中除實(shí)現(xiàn)Shape接口中的所有成員外,還必須包含四個(gè)Point型私有字段及相應(yīng)屬性,它們用于表示四邊形四個(gè)頂點(diǎn)的坐標(biāo)。另外,還應(yīng)為Quadrilateral類定義方法Area(求面積)和構(gòu)造函數(shù),并重寫方法ToString。由于程序后面還需要在Quadrilateral類的基礎(chǔ)上派生出正方形類,因此,實(shí)現(xiàn)Shape接口時(shí),應(yīng)該將方法Draw、Erase、Move聲明為虛擬的,另外,重寫方法ToString時(shí),不妨將它聲明為
12、密封的。步驟6:定義圓類Circle實(shí)現(xiàn)Shape接口。Circle類中除實(shí)現(xiàn)Shape接口的所有成員外,還必須包含一個(gè)Point型私有字段、一個(gè)int型私有字段及相應(yīng)屬性,它們分別用于表示圓的圓心坐標(biāo)及半徑;另外,還應(yīng)為Circle類定義Area(求面積)和構(gòu)造函數(shù),并重寫方法ToString。步驟7:定義正方形類Square繼承Quadrilateral類。Square類中應(yīng)重寫方法Draw、Erase、Move并定義構(gòu)造函數(shù)。步驟8:定義Main方法測試上面定義的類。 (3)參考代碼:/Test3_2.csusing System;/定義一個(gè)顏色的枚舉enum CColorBLACK,B
13、LUE,BROWN,CYAN,GRAY,GREEN,ORANGE,PINK,RED,WHITE,YELLOW/定義一個(gè)幾何圖形接口interface ShapeCColor Colorget;set;/繪制的方法void Draw();/擦拭的方法void Erase();/移動(dòng)的方法void Move();/定義一個(gè)點(diǎn)的結(jié)構(gòu)來實(shí)現(xiàn)Shape幾何圖形的接口struct Point:Shapeprivate CColor color;private int x,y;public CColor Colorget return color; set color=value; public int X
14、get return x; set x=value; public int Yget return y; set y=value; public Point() public Point(int x,int y)this.x=x;this.y=y;this.color=CColor.RED;public void Draw()Console.WriteLine("繪制一個(gè)點(diǎn)");public void Erase()Console.WriteLine("擦拭一個(gè)點(diǎn)");public void Move()Console.WriteLine("移
15、動(dòng)一個(gè)點(diǎn)");/重寫ToString()方法public override string ToString()return "("+x+","+y+")"/定義一個(gè)直線的類來實(shí)現(xiàn)Shape接口class Line:Shapeprivate CColor color;/頂點(diǎn)private Point point1,point2;public CColor Colorget return color; set color=value; public Point Point1get return point1; set point
16、1=value; public Point Point2 get return point2; set point2=value; public Line() public Line(Point p1,Point p2) point1=p1; point2=p2;public void Draw() Console.WriteLine("繪制一條直線");public void Erase() Console.WriteLine("擦拭一條直線");public void Move() Console.WriteLine("移動(dòng)一條直線&quo
17、t;); /也重寫一下ToString方法public override string ToString() return "("+point1.ToString()+","+point2.ToString()+")"/定義一個(gè)三角形的類同時(shí)讓它實(shí)現(xiàn)Shape接口class Triangle:Shapeprivate CColor color;/定義三角形的三個(gè)頂點(diǎn)private Point point1,point2,point3;public CColor Colorget return color; set color=valu
18、e; public Point Point1get return point1; set point1=value; public Point Point2get return point2; set point2=value; public Point Point3get return point3; set point3=value; public Triangle() public Triangle(Point p1,Point p2,Point p3) point1=p1; point2=p2; point3=p3; public void Draw() Console.WriteLi
19、ne("繪制一個(gè)三角形"); public void Erase() Console.WriteLine("擦拭一個(gè)三角形"); public void Move() Console.WriteLine("移動(dòng)一個(gè)三角形"); /增加一個(gè)三角形自己的求面積的方法 public double Area() double area=Math.Abs(point1.X*point2.Y+point2.X*point3.Y+point3.X*point1.Y -point1.X*point3.Y-point2.X*point1.Y-point
20、3.X*point2.Y)/2.0; return area; /同樣也重寫一下ToString方法 public override string ToString() return "("+point1.ToString()+","+point2.ToString()+","+point3.ToString()+")" /定義一個(gè)四邊形的類同樣實(shí)現(xiàn)Shape接口class Quadrilateral:Shapeprivate CColor color;/定義四邊形的四個(gè)頂點(diǎn)private Point point1
21、,point2,point3,point4;public CColor Colorget return color; set color=value; public Point Point1get return point1; set point1=value; public Point Point2get return point2; set point2=value; public Point Point3get return point3; set point3=value; public Point Point4get return point4; set point4=value;
22、public Quadrilateral() public Quadrilateral(Point p1,Point p2,Point p3,Point p4)point1=p1;point2=p2;point3=p3;point4=p4;public virtual void Draw()Console.WriteLine("繪制一個(gè)四邊形");public virtual void Erase()Console.WriteLine("擦拭一個(gè)四邊形");public virtual void Move()Console.WriteLine("
23、;移動(dòng)一個(gè)四邊形");/定義一個(gè)四邊形求面積的方法public double Area()double area=Math.Abs(point1.X*point2.Y-point2.X*point1.Y+point2.X*point3.Y -point3.X+point2.Y+point3.X*point4.Y-point4.X*point3.Y +point4.X*point1.Y-point1.X*point4.Y)/2.0; return area;/重寫ToString方法public sealed override string ToString()return "
24、;("+point1.ToString()+","+point2.ToString()+","+point3.ToString()+","+point4.ToString()+")"/定義一個(gè)圓的類同樣讓它實(shí)現(xiàn)Shape接口class Circle:Shapeprivate CColor color;/定義一個(gè)圓心private Point point;/定義圓的半徑private int radius;public CColor Colorget return color; set color=valu
25、e; public Point Pointget return point; set point=value; public int Radiusget return radius; set radius=value; public Circle() public Circle(Point p,int r)point=p;radius=r; public void Draw()Console.WriteLine("繪制一個(gè)圓");public void Erase()Console.WriteLine("擦拭一個(gè)圓");public void Move(
26、)Console.WriteLine("移動(dòng)一個(gè)圓");/定義一個(gè)方法求的面積public double Area()return Math.PI*radius*radius;/同樣重寫ToString讓它格式化字符串public override string ToString() return "("+point.ToString()+","+radius+")"/定義一個(gè)正方形的類,并且它讓繼承于四邊形的類class Square:Quadrilateralpublic Square() public Squ
27、are(Point p1,Point p2,Point p3,Point p4):base(p1,p2,p3,p4) public override void Draw()Console.WriteLine("繪制一個(gè)正方形");public override void Erase()Console.WriteLine("擦拭一個(gè)正方形");public override void Move()Console.WriteLine("移動(dòng)一個(gè)正方形");/定義一個(gè)類放入Main()方法class Test3_2 static void Main()Point p1=new P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年冷鏈裝備資金需求報(bào)告代可行性研究報(bào)告
- 2024年養(yǎng)老服務(wù)資金需求報(bào)告代可行性研究報(bào)告
- 2024年商用家具項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年水電站計(jì)算機(jī)監(jiān)控裝置項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 松原市寧江區(qū)2025年八年級(jí)《語文》上學(xué)期期末試題與參考答案
- 2024年新能源環(huán)衛(wèi)裝備資金籌措計(jì)劃書代可行性研究報(bào)告
- 2025年中國邊緣行業(yè)市場規(guī)模及投資前景預(yù)測分析報(bào)告
- 2025年中國苯乙烯類熱塑性彈性體行業(yè)市場前景預(yù)測及投資價(jià)值評(píng)估報(bào)告
- 2025年中國辦公室燈具行業(yè)市場前景預(yù)測及投資價(jià)值評(píng)估分析報(bào)告
- 能源產(chǎn)業(yè)園區(qū)基礎(chǔ)設(shè)施建設(shè)補(bǔ)充協(xié)議
- 軟件工程監(jiān)理實(shí)施細(xì)則10
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí)答案
- (一模)2025年深圳市高三年級(jí)第一次調(diào)研考試 英語試卷(含標(biāo)準(zhǔn)答案)
- 越南投資環(huán)境評(píng)價(jià)與重點(diǎn)投資區(qū)域研究
- 神經(jīng)內(nèi)科緊急護(hù)理人力資源調(diào)配演練記錄
- 湖北省武漢市漢陽區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末檢測英語試卷(含答案無聽力原文及音頻)
- 《硬科技早期投資-項(xiàng)目評(píng)估指南》
- 2025年貴州遵義路橋工程限公司招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 上海市居住房屋租賃合同范本
- 廣西河池市(2024年-2025年小學(xué)六年級(jí)語文)部編版小升初模擬(下學(xué)期)試卷及答案
- 保潔及會(huì)務(wù)服務(wù)項(xiàng)目技術(shù)方案
評(píng)論
0/150
提交評(píng)論