類和對象 實驗報告模板_第1頁
類和對象 實驗報告模板_第2頁
類和對象 實驗報告模板_第3頁
類和對象 實驗報告模板_第4頁
類和對象 實驗報告模板_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...計算機(jī)科學(xué)與技術(shù)系實驗報告專業(yè)名稱軟件工程課程名稱面向?qū)ο蟪绦蛟O(shè)計工程名稱實驗三類和對象班級15軟工2班學(xué)號1504092006姓名XXX同組人員無實驗日期2016.9.27一、實驗?zāi)康呐c要求〔簡述本次實驗要求到達(dá)的目的,涉及到的相關(guān)知識點,實驗的具體要求?!衬康模?.掌握J(rèn)ava類的構(gòu)造、類的定義、方法和屬性的定義以及對象的實現(xiàn)。2.掌握類及其成員修飾符的使用;掌握構(gòu)造函數(shù)的使用;方法的參數(shù)傳遞和返回值的用法。3.掌握類變量與實例變量,以及類方法與實例方法的區(qū)別。要求:1.正確地定義類、方法和屬性,要求屬性均定義成私有的〔private〕2.學(xué)會方法的參數(shù)傳遞和返回值的用法3.熟練使用類及其成員修飾符4.使用構(gòu)造函數(shù)創(chuàng)立類的對象,掌握默認(rèn)構(gòu)造函數(shù)和自定義構(gòu)造函數(shù)的區(qū)別5.類變量與實例變量,以及類方法與實例方法的使用〔靜態(tài)方法常常為應(yīng)用程序中的其它類提供一些實用工具所用,在Java的類庫中大量的靜態(tài)方法正是出于此目的而定義的?!?.程序應(yīng)包括各個被調(diào)用方法的執(zhí)行結(jié)果的顯示。7.寫出實驗報告。要求記錄編譯和執(zhí)行Java程序當(dāng)中的系統(tǒng)錯誤信息提示,并給出解決方法。〔附運行界面、源代碼〕。二、實驗內(nèi)容〔根據(jù)本次實驗工程的具體任務(wù)和要求,完成相關(guān)內(nèi)容,可包括:實驗?zāi)康?、原理、算法描述或流程圖、源代碼、實驗運行步驟、關(guān)鍵技術(shù)分析、測試數(shù)據(jù)與實驗結(jié)果、其他〕實驗?zāi)康?: 定義一個高校人員類School_Property,包含姓名、出生年月、性別、身份證號、手機(jī)號碼,所在學(xué)校,入校時間,家庭地址等私有屬性,以及訪問屬性的方法。編寫程序,創(chuàng)立一個高校人員類的對象,設(shè)置屬性值,然后打印出該對象的各項屬性信息。原理:編寫一個高校學(xué)生類School_Property,類里存放姓名name、出生年月dateofbirth、性別sex、身份證號id、手機(jī)號碼tel,所在學(xué)校school,入校時間entertime,家庭地址address等私有屬性,以及訪問屬性的方法getName(),getSex()等。算法描述: 由于在類的內(nèi)部,屬性的訪問權(quán)限是透明的,所以可以在類的內(nèi)部定義訪問私有屬性的方法,在類的外部只需要調(diào)用公有的方法就可以訪問私有的屬性變量,例如在類的內(nèi)部定義一個設(shè)置并訪問名字的方法:publicvoidsetName(Stringname){Thisname=name;}publicStringgetName(Stringname){returnname;}這樣就可以在一個類中訪問它的私有屬性,其他的私有屬性的訪問方式一樣。實驗運行步驟:翻開dos界面,進(jìn)入代碼的路徑,輸入javacSchool.java,未打印出錯的信息,繼續(xù)輸入javaSchool后打印出成員的屬性信息如下:實驗?zāi)康?:在上題的根基上,重載構(gòu)造方法,分別用重載的構(gòu)造方法實例化對象,并對對象的各屬性賦值。并完成以下功能的編寫:1〕將高校人員對象傳入print,可以直接打印出高校人員各屬性值?!蔡崾荆褐貙憈oString方法即可〕2〕比擬當(dāng)前對象和輸入?yún)?shù)中的對象的年齡大小,輸出比擬結(jié)果形式:如張三比李四大?!蔡崾荆喝掌陬愋捅葦M大小〕3〕比擬當(dāng)前對象和輸入?yún)?shù)中的對象是不是同一個人,是的話返回true,否則false?!蔡崾荆罕葦M身份證號〕4〕編寫一個sayHello方法,打印輸出:“大家好,我是XXXX學(xué)校的XXX!〞編寫一個測試類,在該類的main方法調(diào)用以上方法測試。原理:1.首先定義一個高校人員的類classSchool_Property,里面再定義許多私有屬性變量,包含姓名、出生年月、性別、身份證號、手機(jī)號碼,所在學(xué)校,入校時間,家庭地址等。然后重寫構(gòu)造函數(shù)School_Property()使其具有可以傳遞假設(shè)干個形參,傳遞從主啟動類實例化對象時傳遞過來的實參,由于在類的內(nèi)部成員屬性的訪問權(quán)限是透明的,所以可以在測試類的內(nèi)部寫一個方法print(),用于訪問輸出高效人員的內(nèi)部私有屬性的值,在輸出時可以調(diào)用高校人員類中的toString()方法,在調(diào)用toString()方法之前要對其進(jìn)展重寫。算法描述:publicSchool_Persion(Stringname,intdateofbirth,Stringsex,Stringid,Stringtel,Stringschool,Stringentertime,Stringaddress){ =name; this.dateofbirth=dateofbirth; this.sex=sex; this.id=id; this.tel=tel; this.school=school; this.entertime=entertime; this.address=address; }在重寫類的構(gòu)造方法的時候,=name;來將傳遞過來的形參直接賦值給我們的當(dāng)前類的對象的私有成員的屬性值。 @Override publicStringtoString(){ System.out.println("姓名:"+name+","+"出生日期:"+dateofbirth+","+"性別:"+sex+","+"身份證號:"+id+","+"聯(lián)系:"+tel+","+"所在學(xué)校:"+school+","+"入校時間:"+entertime+","+"家庭住址:"+address); return"6";}在重寫toString()方法時,有許多種方法,其中最常用的是在方法中直接返回屬性的值,或者直接在方法中打印出屬性的值,以到達(dá)題目的要求,這里我用的是直接打印出屬性的值的方式。2.在比擬成員對象的年齡的時候,有多種方法,可以將出生日期定義為Date類型的成員屬性,然后利用java的庫函數(shù)里的比擬日期的方法來比擬,但是比擬麻煩,這里采用的是將8位數(shù)的日期的整型變量轉(zhuǎn)化為年月日分別進(jìn)展比擬,publicvoidcompare(School_Persions){ intdate=s.dateofbirth; intb,c,d,b1,c1,d1; intsum; b=date/10000; c=(date-(b*10000))/100; d=date-b*10000-c*100; b1=dateofbirth/10000; c1=(dateofbirth-(b1*10000))/100; d1=dateofbirth-b1*10000-c1*100; sum=(b-b1)*365+(c-c1)*31+(d-d1); System.out.println("s比s1大:%d天"+sum); }然后計算其日期之差,然后輸出其大小的值就可以完成比擬了。3.比擬當(dāng)前對象和輸入?yún)?shù)中的對象是不是同一個人,可以對傳入的對象獲取它的身份證屬性,然后比擬其屬性值是否一樣,如果一樣則返回ture,否則返回false。4.編寫一個sayHello方法,打印輸出:“大家好,我是XXXX學(xué)校的XXX!〞,只需要在高校人員類中寫一個sayHello方法,然后調(diào)用,用輸出打印語句打印出其值即可。實驗運行步驟:在eclipse環(huán)境下編譯運行:直接鼠標(biāo)點擊eclipse上的run按鈕就可以直接打印輸出所需要的信息。在dos環(huán)境下編譯運行:翻開dos窗口,進(jìn)入包的src目錄下,輸入javac<類1的路徑>+類1.java<類2的路徑>+類2.java沒有打印提示錯誤信息便說明程序沒有錯誤。繼續(xù)輸入javatest3.test.Test即可輸出結(jié)果程序運行完畢。三、實驗分析與小結(jié)〔1實驗過程中的問題分析、產(chǎn)生的原因以及解決方法;2實驗結(jié)果分析;3有待優(yōu)化思路〕遇到的問題:在比擬兩個出生年月日期時,算法設(shè)計上開場存在問題,因為年月日有一個換算關(guān)系,所以比擬起來非常的不方便,最初想利用java庫函數(shù)里自帶的方法來寫,將日期定義為Date型,但是后來在查閱幫助文檔時發(fā)現(xiàn)很多的比擬日期的庫方法已經(jīng)過時不能用了,但是新版的用法找不到,于是就換了一種思路,將成員屬性中的出生日期直接定義為整型變量,然后自己對傳入的8位數(shù)數(shù)據(jù)進(jìn)展運算處理,分解為年月日三個屬性,然后分別計算,輸出兩個日期的大小,完成了比擬。在將帶有包名的程序在dos環(huán)境下運行的時候總是提示錯誤,最后可以編譯,但是無法運行,解決方案是,編譯的時候?qū)蓚€類帶上路徑一起編譯出來,然后運行時需要輸入包名.類名即可運行??偨Y(jié):我們在編寫程序的時候難免會遇到許多問題,此時我們不應(yīng)該死腦經(jīng)的停留在某一種算法上,適當(dāng)?shù)奈覀兛梢圆捎闷渌慕鉀Q方案,以到達(dá)我們需要的目的。同時也應(yīng)該學(xué)會經(jīng)常查看語言的幫助文檔或者其他的資料來輔助我們解決問題。源代碼1、classSchool_Property{ privateStringname; privateintdateofbirth; privateStringsex; privateStringid; privateStringtel; privateStringschool; privateStringentertime; privateStringaddress; publicvoidsetName(Stringname){ =name; } publicvoidsetDateofbirth(intdateofbirth){ this.dateofbirth=dateofbirth; } publicvoidsetSex(Stringsex){ this.sex=sex; } publicvoidsetId(Stringid){ this.id=id; } publicvoidsetTel(Stringtel){ this.tel=tel; } publicvoidsetSchool(Stringschool){ this.school=school; } publicvoidsetEntertime(Stringentertime){ this.entertime=entertime; } publicvoidsetAddress(Stringaddress){ this.address=address; } publicStringgetName(){ returnname; } publicintgetDateofbirth(){ returndateofbirth; } publicStringgetSex(){ returnsex; } publicStringgetId(){ returnid; } publicStringgetTel(){ returntel; } publicStringgetSchool(){ returnschool; } publicStringgetEntertime(){ returnentertime; } publicStringgetAddress(){ returnaddress; }}publicclassSchool{ publicstaticvoidmain(String[]args){ School_Propertys=newSchool_Property(); s.setName("張三"); s.setDateofbirth(19971124); s.setSex("男"); s.setId("342422199620123654"); s.setTel(); s.setSchool("合肥學(xué)院"); s.setEntertime("20160201"); s.setAddress("合肥"); System.out.println("姓名:"+s.getName()+","+"出生日期:"+s.getDateofbirth()+","+"性別:"+s.getSex()+","+"身份證號:"+ s.getId()+","+":"+s.getTel()+","+"學(xué)校:"+s.getSchool()+","+"入學(xué)時間:"+s.getEntertime()+","+"地址:"+s.getAddress()); }}2.packagetest3.po;publicclassSchool_Persion{ privateStringname; privateintdateofbirth; privateStringsex; privateStringid; privateStringtel; privateStringschool; privateStringentertime; privateStringaddress;publicSchool_Persion(Stringname,intdateofbirth,Stringsex,Stringid,Stringtel,Stringschool,Stringentertime,Stringaddress){ =name; this.dateofbirth=dateofbirth; this.sex=sex; this.id=id; this.tel=tel; this.school=school; this.entertime=entertime; this.address=address; } @Override publicStringtoString(){ System.out.println("姓名:"+name+","+"出生日期:"+dateofbirth+","+"性別:"+sex+","+"身份證號:"+id+","+"聯(lián)系:"+tel+","+"所在學(xué)校:"+school+","+"入校時間:"+entertime+","+"家庭住址:"+address); return"6"; } publicvoidprint(){ System.out.println("姓名:"+name+","+"出生日期:"+dateofbirth+","+"性別:"+sex+","+"身份證號:"+id+","+"聯(lián)系:"+tel+","+"所在學(xué)校:"+school+","+"入校時間:"+entertime+","+"家庭住址:"+address); } publicvoidcompare(School_Persions){ intdate=s.dateofbirth; intb,c,d,b1,c1,d1; intsum; b=date/10000; c=(date-(b*10000))/100; d=date-b*10000-c*100; b1=dateofbirth/10000; c1=(dateofbirth-(b1*10000))/100; d1=dateofbirth-b1*10000-c1*100; sum=(b-b1)*365+(c-c1)*31+(d-d1); System.out.println("s比s1大:%d天"+sum); } publicvoidcomparePerson(School_Persions)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論