面向?qū)ο?Java)實(shí)驗(yàn)03、繼承、接口和多態(tài)_第1頁(yè)
面向?qū)ο?Java)實(shí)驗(yàn)03、繼承、接口和多態(tài)_第2頁(yè)
面向?qū)ο?Java)實(shí)驗(yàn)03、繼承、接口和多態(tài)_第3頁(yè)
面向?qū)ο?Java)實(shí)驗(yàn)03、繼承、接口和多態(tài)_第4頁(yè)
面向?qū)ο?Java)實(shí)驗(yàn)03、繼承、接口和多態(tài)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、電子信息學(xué)院實(shí)驗(yàn)報(bào)告書(shū)課程名: 面向?qū)ο蟪绦蛟O(shè)計(jì)(Java) 題 目: 實(shí)驗(yàn)03 繼承、接口和多態(tài) 實(shí)驗(yàn)類別: 【驗(yàn)證、設(shè)計(jì)】 班 級(jí): BX1210 學(xué) 號(hào): 121003531028 姓 名: 俞佳星 評(píng)語(yǔ):實(shí)驗(yàn)態(tài)度:認(rèn)真( ) 一般( ) 較差( )實(shí)驗(yàn)結(jié)果:正確( ) 部分正確( ) 錯(cuò)( )實(shí)驗(yàn)理論:掌握( ) 熟悉( ) 了解( ) 生疏( )操作技能:較強(qiáng)( ) 一般( ) 較差( )實(shí)驗(yàn)報(bào)告:較好( ) 一般( ) 較差( )成績(jī): 指導(dǎo)教師: 王中華 批閱時(shí)間: 2014年3月25日面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)實(shí)驗(yàn)報(bào)告 10 一、實(shí)驗(yàn)?zāi)康模?)掌握類的繼承機(jī)制。(2)熟悉類中

2、成員變量和方法的訪問(wèn)控制。(3)熟悉方法或構(gòu)造方法多態(tài)性。(4)熟悉接口的定義方法。二、實(shí)驗(yàn)內(nèi)容(1)定義一個(gè)球類Ball,包含一個(gè)私有成員變量半徑(double r),兩個(gè)公有成員方法:設(shè)定半徑方法(void setR(double x))、得到半徑值方法(double getR())。定義一個(gè)臺(tái)球類Billiards,繼承Ball類,包含一個(gè)私有成員變量顏色(String color),兩個(gè)公有成員方法:設(shè)定顏色方法setColor()、輸出信息方法show(),其中show()方法可以輸出該臺(tái)球的顏色和半徑值。定義一個(gè)公有類TestBall,測(cè)試前兩個(gè)類。(2)定義一個(gè)抽象類Driver

3、,它有String gender(性別)和int age(年齡)兩個(gè)成員屬性,還有一個(gè)抽象的成員方法drives(Vehicle v),并從它派生出FemaleDriver和MaleDriver兩個(gè)子類。定義一個(gè)抽象類Vehicle,它有String type(車(chē)型)和int id(車(chē)牌號(hào)碼)兩個(gè)成員屬性,還有一個(gè)抽象的成員方法drivedByDriver(Driver who),并從它派生出Bus和Car兩個(gè)子類。定義一個(gè)測(cè)試類TestDemo,在其main()方法中先創(chuàng)建fd和md兩個(gè)Driver對(duì)象,然后創(chuàng)建vb和vc兩個(gè)Vehicle對(duì)象。 先將以上所有類均放置到.sdju

4、.exp031包中,然后以兩種方式,分別通過(guò)調(diào)用drives()和drivedByDriver()成員方法輸出如下字符串:A Female drives a CarA Male drives a Bus 通過(guò)將Bus和Car類放置到.sdju.exp032包中,檢驗(yàn)各個(gè)類及其成員的訪問(wèn)權(quán)限; 注釋掉TestDemo類,在.sdju.util包中新建一個(gè)LimitRun測(cè)試類。在LimitRun類的main()方法中先創(chuàng)建20個(gè)Vehicle對(duì)象(隨機(jī)生成車(chē)牌號(hào),車(chē)牌號(hào)范圍為11000),并規(guī)定只有雙號(hào)車(chē)輛能夠通過(guò),輸出所有車(chē)輛的通過(guò)情況。(3)編寫(xiě)程序?qū)崿F(xiàn)如下功能:已知

5、Person類包含三個(gè)公共域變量(姓名、性別、年齡)和一個(gè)構(gòu)造方法,Student類是Person類的派生類,包含兩個(gè)新的公共域變量(學(xué)號(hào)、班號(hào))、兩個(gè)公共方法(修改年齡、顯示基本信息)及一個(gè)構(gòu)造方法。定義一組學(xué)生對(duì)象,并初始化他們的基本信息,然后依次輸出。(4)接口實(shí)驗(yàn)程序文件TestInterface.java。運(yùn)行該程序,然后按【思考問(wèn)題】?jī)?nèi)容修改和觀察程序。interface rec_Area_Peri int getArea(); int getPerimeter();class rectangle implements rec_Area_Peri int width, length

6、; rectangle(int w, int l) width=w; length=l; public int getArea() return width*length; public int getPerimeter() return (2*(width+length); public class TestInterface public static void main(String args) rectangle rect=new rectangle(10,20); System.out.println(矩形面積=+rect.getArea(); System.out.println(

7、矩形周長(zhǎng)=+rect.getPerimeter(); 【思考問(wèn)題】在實(shí)現(xiàn)類rectangle中注釋掉一個(gè)方法后進(jìn)行編譯,看發(fā)生了什么?為什么?在實(shí)現(xiàn)類rectangle中將各實(shí)現(xiàn)方法前的public修飾符去掉再進(jìn)行編譯,看發(fā)生了什么?為什么?將接口rec_Area_Peri中定義的兩個(gè)方法前加上abstract修飾符再編譯,看對(duì)程序有影響否?為什么?不用單獨(dú)的實(shí)現(xiàn)類rectangle,直接在主類classe TestInterface中實(shí)現(xiàn)那兩個(gè)方法,如何修改程序?將接口rec_Area_Peri中定義的兩個(gè)方法拆分定義成兩個(gè)接口,即每個(gè)接口只定義一個(gè)方法,程序?qū)⑷绾涡薷模咳?、?shí)驗(yàn)結(jié)果(關(guān)鍵代

8、碼和運(yùn)行結(jié)果)(1)package .sdju.no28.johnson;public class testBall public static void main(String args)ball a =new ball(2);a.setR(3);System.out.println(球半徑:+a.getR();billiards b=new billiards(3,red);b.setColor(bule);b.setR(2);b.show();class ballprivate double r;ball()r=0;ball(double r)this.r=r;void se

9、tR(double r)this.r=r;double getR()return r;class billiards extends ballprivate String color;billiards()super();color=write;billiards(double r,String color)super(r);this.color=color;void setColor(String color)this.color=color;void show()System.out.println(臺(tái)球顏色;+color+n臺(tái)球半徑:+super.getR();(1)運(yùn)行結(jié)果(2)pac

10、kage .sdju.no28.johnson;public class testDemo public static void main(String args)driver fd=new femaleDriver(female,20);driver md=new maleDriver(male,20);vehicle vb=new bus(bus,239);vehicle vc=new car(car,234);fd.drives(vc);vb.dirvedByDriver(md);abstract class driverString gender;int age;publi

11、c driver(String gender, int age) this.gender = gender;this.age = age;abstract void drives(vehicle v);abstract class vehicleString type;int id;public vehicle(String type, int id) this.type = type;this.id = id;abstract void dirvedByDriver(driver who);class femaleDriver extends driverpublic femaleDrive

12、r(String gender, int age) super(gender, age);void drives(vehicle v) System.out.println(A + gender + drives a + v.type );class maleDriver extends driverpublic maleDriver(String gender, int age) super(gender, age);void drives(vehicle v) System.out.println(A + gender + drives a + v.type);class bus exte

13、nds vehiclepublic bus(String type, int id) super(type, id);void dirvedByDriver(driver who) System.out.println(A + who.gender + drives a + type);class car extends vehiclepublic car(String type, int id) super(type, id);void dirvedByDriver(driver who) System.out.println(A + who.gender + drives a + type

14、);(2)運(yùn)行結(jié)果package .sdju.no28.johnson;import java.util.Random;public class limitRun public static void main(String args)vehicle ve=new vehicle20;for(int i=0;i20;i+)Random rad=new Random();vei=new car(car,rad.nextInt(10000);for(int i=0;i20;i+)if(vei.id % 2 = 0) System.out.println(車(chē)牌為:+vei.id +可以通

15、過(guò));else System.out.println(車(chē)牌為:+ vei.id+不可以通過(guò));(2)運(yùn)行結(jié)果(3)package .sdju.no28.johnson;public class testStu public static void main(String args)student stu=new student3;stu0=new student(Tom,male,19,001,class one);stu1=new student(Jack,male,20,002,class two);stu2=new student(Ada,female,19,002,clas

16、s one);for(int i=0;i3;i+)stui.show();class personString name;String sex;int age;person()name=unknown;sex=unknown;age=0;person(String name, String sex, int age) = name;this.sex = sex;this.age = age;String getName() return name;void setName(String name) = name;String getSex() retur

17、n sex;void setSex(String sex) this.sex = sex;int getAge() return age;void setAge(int age) this.age = age;class student extends personString sNo;String cNo;student()super();sNo=unknown;cNo=unknown;student(String name, String sex, int age,String sNo, String cNo) super(name,sex,age);this.sNo = sNo;this

18、.cNo = cNo;String getsNo() return sNo;void setsNo(String sNo) this.sNo = sNo;String getcNo() return cNo;void setcNo(String cNo) this.cNo = cNo;void show()System.out.println(學(xué)生: + name + 的信息:n性別: + sex + 年齡:+age + 學(xué)號(hào): + sNo + 班號(hào):+cNo);(3)運(yùn)行結(jié)果(4)package .sdju.no28.johnson;public class testInterface public static void main(String args) rectangle rect = new rectangle(10, 20);System.out.printl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論