Java類和對(duì)象的設(shè)計(jì)原理_第1頁(yè)
Java類和對(duì)象的設(shè)計(jì)原理_第2頁(yè)
Java類和對(duì)象的設(shè)計(jì)原理_第3頁(yè)
Java類和對(duì)象的設(shè)計(jì)原理_第4頁(yè)
Java類和對(duì)象的設(shè)計(jì)原理_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第Java類和對(duì)象的設(shè)計(jì)原理目錄一、實(shí)驗(yàn)?zāi)康亩?、?shí)驗(yàn)代碼1.定義一個(gè)類MyProgram,包含兩個(gè)屬性:2.在Vehicle類的基礎(chǔ)上創(chuàng)建一個(gè)Tractor(拖拉機(jī))類3.組合實(shí)現(xiàn)汽車類5.USB接口程序設(shè)計(jì)6.this關(guān)鍵字主要有三個(gè)應(yīng)用:7.請(qǐng)簡(jiǎn)述static關(guān)鍵字的作用8.請(qǐng)簡(jiǎn)述super關(guān)鍵字的作用9.請(qǐng)簡(jiǎn)述final關(guān)鍵字的作用

一、實(shí)驗(yàn)?zāi)康?/p>

1.掌握面向?qū)ο蟮木幊趟枷?、類與對(duì)象;2.掌握類的封裝性、繼承性和多態(tài)性的作用;3.掌握成員變量和成員方法的特性、構(gòu)造方法、toString方法、equals方法的使用;4.掌握this、super、final、static等關(guān)鍵字的使用;5.掌握接口及接口對(duì)象的使用;6.掌握包的定義與使用;7.掌握四種訪問控制權(quán)限private、default、protected、public。

二、實(shí)驗(yàn)代碼

1.定義一個(gè)類MyProgram,包含兩個(gè)屬性:

一個(gè)是private的整型屬性data、一個(gè)是private的String類型屬性str,封裝這兩個(gè)屬性的四個(gè)方法setData()和getData()、setStr()和getStr();重寫toString方法(自定義格式);重寫equals方法(屬性data和屬性str均相同才表示兩個(gè)對(duì)象相等)。并編寫測(cè)試程序,測(cè)試MyProgram類的使用。

package作業(yè)練習(xí).test2;

publicclassMyProgram{

publicstaticvoidmain(String[]args){

Testt1=newTest();

Testt2=newTest();

t1.setStr("A");

t2.setStr("B");

t1.setData(1);

t2.setData(2);

System.out.println(t1.equals(t2));

System.out.println(t1.toString());

System.out.println(t2.toString());

classTest{

privateStringstr;

privateintdata;

publicStringgetStr(){

returnstr;

publicvoidsetStr(Stringstr){

this.str=str;

publicintgetData(){

returndata;

publicvoidsetData(intdata){

this.data=data;

@Override

publicbooleanequals(Objectobject){

Testtest=(Test)object;

if(test.getData()==this.getData()test.getStr()==this.getStr()){

returntrue;

else{

returnfalse;

@Override

publicStringtoString(){

return"str為"+this.getStr()+"\tdata為:"+this.getData();

}

2.在Vehicle類的基礎(chǔ)上創(chuàng)建一個(gè)Tractor(拖拉機(jī))類

它不僅擁有journey、wheelNum、LoadNum、driveSpeed四個(gè)屬性和DriveAt()方法,而且還擁有自己的plough()方法,在該方法中要求能夠顯示journey、wheelNum、LoadNum三個(gè)屬性的值。請(qǐng)編寫測(cè)試類,調(diào)用DriveAt()、plough()方法。

package作業(yè)練習(xí).test2;

publicclassVehicle{

publicfloatjourney;

publicintwheelNum;

publicintloadNum;

publicintdriveSpeed;

publicVehicle(){

journey=100.3f;

wheelNum=4;

loadNum=1;

publicvoiddriveAt(intspeed){

if(speed=60){

System.out.println("行車速度太快,容易造成事故");

driveSpeed=40;

}else{

System.out.println("你在安全行駛速度內(nèi)行駛");

driveSpeed=speed;

package作業(yè)練習(xí).test2;

publicclassTractorextendsVehicle{

publicvoidplough(){

System.out.println("公里數(shù):"+this.journey);

System.out.println("車速:"+this.driveSpeed);

System.out.println("承載量:"+this.loadNum);

publicstaticvoidmain(String[]args){

Tractort=newTractor();

t.plough();

t.driveAt(80);

t.plough();

}

3.組合實(shí)現(xiàn)汽車類

問題描述:一輛Car有(has)四個(gè)輪子(Wheels)和一個(gè)發(fā)動(dòng)機(jī)(Engine)?,F(xiàn)在要求用組合方法設(shè)計(jì)類Car、類Wheel和類Engine。

(1)類Engine有字符串屬性type記錄發(fā)動(dòng)機(jī)的型號(hào);

有構(gòu)造方法,可設(shè)置發(fā)動(dòng)機(jī)的型號(hào);

有方法start()啟動(dòng)引擎(輸出發(fā)動(dòng)機(jī)型號(hào)和字符串starts的)。

(2)類Wheel有字符串屬性type記錄輪胎的型號(hào),有整數(shù)類型屬性index記錄當(dāng)前輪胎編號(hào)(1:front-left,2:front-right,3:back-left,4:back-right);

有構(gòu)造方法,可設(shè)置輪胎的型號(hào)和編號(hào);

有方法roll()表示輪胎正在轉(zhuǎn)動(dòng)(輸出輪胎型號(hào)、輪胎位置和rolling的字符串)。

(3)類Car有字符串屬性model記錄轎車的型號(hào),有屬性wheels[]和engine,分別是Wheel類對(duì)象數(shù)組和Engine類對(duì)象;

有構(gòu)造方法,參數(shù)是三個(gè)字符串,分別表示轎車的型號(hào)、輪胎型號(hào)和發(fā)動(dòng)機(jī)的型號(hào);

有方法changeWheel()可以改變指定輪胎的型號(hào);

有方法start(),先輸出轎車型號(hào)和字符串firing,然后調(diào)用Engine的start(),再調(diào)用所有輪胎的roll(),最后顯示轎車型號(hào)和字符串running。

(4)編寫測(cè)試程序測(cè)試上述所有方法。

package作業(yè)練習(xí).test2;

classEngineextendsCar{

Stringtype;

publicvoidEngine(Stringtype){

this.type=type;

voidstart(){

System.out.println(type+"starts");

classWheelextendsCar{

Stringtype;

intindex=0;

publicvoidWheel(Stringtype,intindex){

this.type=type;

this.index=index;

voidroll(){

System.out.println("wheel"+index+""+type+"rolling");

publicclassCar{

Stringmodel;

staticWheel[]wheels;

staticEngineengine=newEngine();

Car(Stringmodel,Wheel[]wheels,Stringeg){

this.model=model;

this.wheels=wheels;

engine.Engine(eg);

Car(){

publicvoidchangeWheel(intindex,Stringstr){

wheels[index-1].Wheel(str,index);

voidstart(){

System.out.println(model+"firing");

engine.start();

for(inti=0;ii++){

wheels[i].roll();

publicstaticvoidmain(String[]args){

Wheel[]wheels=newWheel[4];

Stringmodel="瑪莎拉蒂";

Stringengine="FSI2.0L";

for(inti=1;ii++){

wheels[i-1]=newWheel();

wheels[i-1].Wheel("德國(guó)馬牌",i);

Carcar=newCar(model,wheels,engine);

car.start();

System.out.println("-----更改輪胎型號(hào)-----");

car.changeWheel(2,"米其林");

car.changeWheel(3,"倍耐力");

car.start();

}

4.有圖形接口Shape

有圖形接口Shape,參照?qǐng)ACircle類補(bǔ)充完整正方形Square和三角形Triangle類,并分析運(yùn)行結(jié)果。

package作業(yè)練習(xí).test2;

interfaceShape{

voiddraw();

voiderase();

classCircleimplementsShape{

publicvoiddraw(){

System.out.println("Circle.draw()");

publicvoiderase(){

System.out.println("Circle.erase()");

classSquareimplementsShape{

publicvoiddraw(){

System.out.println("Square.draw()");

publicvoiderase(){

System.out.println("Square.draw()");

classTriangleimplementsShape{

publicvoiddraw(){

System.out.println("Triangle.draw()");

publicvoiderase(){

System.out.println("Triangle.draw()");

publicclassShapes{

publicstaticShaperandShape(){

switch((int)(Math.random()*3)){

default:

case0:

returnnewCircle();

case1:

returnnewSquare();

case2:

returnnewTriangle();

publicstaticvoidmain(String[]args){

Shape[]s=newShape[9];

for(inti=0;is.length;i++)

s[i]=randShape();

for(inti=0;is.length;i++)

s[i].draw();

}

5.USB接口程序設(shè)計(jì)

通常人們使用的計(jì)算機(jī)上都有USB接口,鼠標(biāo)、鍵盤、麥克風(fēng)等都可以連接到USB接口中使用。在計(jì)算機(jī)啟動(dòng)時(shí),這些設(shè)備也隨之啟動(dòng);當(dāng)計(jì)算機(jī)關(guān)閉時(shí),這些設(shè)備也會(huì)隨之關(guān)閉。鼠標(biāo)、鍵盤、麥克風(fēng)等USB接口設(shè)備都啟動(dòng)后,計(jì)算機(jī)才開機(jī)成功;當(dāng)這些設(shè)備都關(guān)閉后,計(jì)算機(jī)才關(guān)機(jī)成功。

讀所編寫的USB接口程序,該程序模擬了計(jì)算機(jī)的開機(jī)和關(guān)機(jī)過程,寫出運(yùn)行結(jié)果。

package作業(yè)練習(xí).test2.USB接口;

publicclassComputer{

privateUSB[]usbArr=newUSB[4];

//向計(jì)算機(jī)上連接一個(gè)USB設(shè)備

publicvoidadd(USBusb){

//遍歷所有的插槽

for(inti=0;iusbArr.length;i++){

//如果發(fā)現(xiàn)一個(gè)空的

if(usbArr[i]==null){

usbArr[i]=usb;

break;

//計(jì)算的開機(jī)功能

publicvoidpowerOn(){

//遍歷所有的插槽

for(inti=0;iusbArr.length;i++){

//如果發(fā)現(xiàn)有設(shè)備

if(usbArr[i]!=null){

//將USB設(shè)備啟動(dòng)

usbArr[i].turnOn();

System.out.println("計(jì)算機(jī)開機(jī)成功?。。?);

//計(jì)算的關(guān)機(jī)功能

publicvoidpowerOff(){

//遍歷所有的插槽

for(inti=0;iusbArr.length;i++){

//如果發(fā)現(xiàn)有設(shè)備

if(usbArr[i]!=null){

//將USB設(shè)備關(guān)閉

usbArr[i].turnOn();

System.out.println("計(jì)算機(jī)關(guān)機(jī)成功?。。?);

}

package作業(yè)練習(xí).test2.USB接口;

publicclassKeyBoardimplementsUSB{

@Override

publicvoidturnOn(){

System.out.println("鍵盤啟動(dòng)了......");

@Override

publicvoidturnOff(){

System.out.println("鍵盤關(guān)閉了......");

}

package作業(yè)練習(xí).test2.USB接口;

publicclassMicimplementsUSB{

@Override

publicvoidturnOn(){

System.out.println("麥克風(fēng)啟動(dòng)了......");

@Override

publicvoidturnOff(){

System.out.println("麥克風(fēng)關(guān)閉了......");

}

package作業(yè)練習(xí).test2.USB接口;

publicclassMouseimplementsUSB{

@Override

publicvoidturnOn(){

System.out.println("鼠標(biāo)啟動(dòng)了......");

@Override

publicvoidturnOff(){

System.out.println("鼠標(biāo)關(guān)閉了......");

}

package作業(yè)練習(xí).test2.USB接口;

publicclassTest{

publicstaticvoidmain(String[]args){

//實(shí)例化計(jì)算機(jī)對(duì)象

Computercomputer=newComputer();

//向計(jì)算機(jī)中添加鼠標(biāo)、麥克風(fēng)、鍵盤

computer.add(newMouse());

computer.add(newMic());

computer.add(newKeyBoard());

//啟動(dòng)計(jì)算機(jī)

computer.powerOn();

//關(guān)閉計(jì)算機(jī)

computer.powerOff();

}

package作業(yè)練習(xí).test2.USB接口;

publicinterfaceUSB{

voidturnOn();//啟動(dòng)

voidturnOff();//關(guān)閉

}

6.this關(guān)鍵字主要有三個(gè)應(yīng)用:

(1)this調(diào)用本類中的屬性,也就是類中的成員變量;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論