版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南臨滄市桑嘎藝術(shù)學(xué)校教師招聘9人筆試備考試題及答案解析
- 2026年教電工知識(shí)試題及答案參考
- 2026年湖南交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)附答案
- 2026年安徽工貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試模擬測(cè)試卷附答案
- 2026年廣州城建職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)及答案1套
- 2026年山西藥科職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)附答案
- 2026年江蘇商貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及答案1套
- 2026年湖南三一工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試模擬測(cè)試卷附答案
- 2026年廣東嶺南職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試模擬測(cè)試卷附答案
- 2026福建福州市倉(cāng)山區(qū)文化旅游投資集團(tuán)有限公司副總經(jīng)理崗位(職業(yè)經(jīng)理人)招聘1人筆試模擬試題及答案解析
- 預(yù)制混凝土構(gòu)件質(zhì)量控制
- 德佑房屋買賣合同
- 健康管理方案設(shè)計(jì)案例分析
- 2024高考英語應(yīng)用文寫作真題手把手:2023全國(guó)乙卷素材
- 玻璃加工公司管理制度
- 七年級(jí)數(shù)學(xué)一元一次方程應(yīng)用題復(fù)習(xí)題及答案
- 儲(chǔ)能電站檢修規(guī)程
- 離婚冷靜期制度的構(gòu)建與完善
- 外掛鋼樓梯專項(xiàng)施工方案
- 企業(yè)盡職調(diào)查內(nèi)容提綱-中英文對(duì)照
- GB/T 18997.1-2020鋁塑復(fù)合壓力管第1部分:鋁管搭接焊式鋁塑管
評(píng)論
0/150
提交評(píng)論