版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)報告課程名稱面向?qū)ο蠹夹g(shù)(Java)實(shí)驗(yàn)項(xiàng)目類和對象實(shí)驗(yàn)儀器個人計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院專 業(yè)計(jì)算機(jī)大類班級/學(xué)號學(xué)生姓名實(shí)驗(yàn)日期2019A)4/03指導(dǎo)教師實(shí)驗(yàn)項(xiàng)目二類和對象一、實(shí)臉目標(biāo)1 .掌握類的定義和對象的創(chuàng)迂以及使用方法;掌握UML類圖的繪制。2 .掌握實(shí)例變黃與靜態(tài)變玄、實(shí)例方法與靜態(tài)方法的區(qū)別與使用。3 .掌握成員變至與局部變瑩的定義與使用。4 .理解和掌握面向?qū)ο蠹夹g(shù)的封裝性,能夠運(yùn)用面向?qū)ο笏枷?、術(shù)語和相關(guān)技術(shù)正確表達(dá) 一般工程問題。二、實(shí)險要求1. 上機(jī)實(shí)臉前,按照每一個實(shí)臉題目的具體要求提前完成準(zhǔn)備工作,如:查找資料、設(shè)計(jì) 算法、寫出全部源程序,做好預(yù)習(xí)筆記,做到有準(zhǔn)備地
2、上機(jī)。2. 上機(jī)實(shí)臉課內(nèi),積極調(diào)試及修改程序。上傳程序到過程化考核平臺 /52:8008/3. 上機(jī)實(shí)臉課后,學(xué)生應(yīng)根據(jù)實(shí)臉數(shù)據(jù)及結(jié)果,完成實(shí)臉報告。實(shí)臉報告是評定實(shí)臉成績 的重要組成部分。完成的實(shí)臉報告交給課代表,課代表收齊本班的實(shí)臉報告后統(tǒng)一交指 導(dǎo)教師申閱評定。三、實(shí)驗(yàn)環(huán)境硬件環(huán)境:個人電腦一臺軟件環(huán)境:JDKL8及以上版本,NsB6ns8.0及以上版本四、實(shí)驗(yàn)內(nèi)容任務(wù)1、定義一個名為Circlu的類表示圓形。這個Circle類包括:(1) 一個名為radius的私有double型數(shù)據(jù)域,表示網(wǎng)的半徑。radius的象認(rèn)值為1。(2) 一個名為numbu
3、rOR)bj«ts的私有靜態(tài)數(shù)據(jù)域,用于記錄創(chuàng)建的網(wǎng)對象的個數(shù)。(3) 一個無參構(gòu)造方法。(4)一個能指定radius的構(gòu)造方法°(5) 一個名為gtcAruaO的方法返回這個圓形的面積。(6) 一名為gctNumbcrOfObjccts的類靜態(tài)方法,返回已創(chuàng)建網(wǎng)的個數(shù)0(7) radius 的 set/get 方法。然后,編寫一個測試程序。妥求在測試程序中:(1)創(chuàng)建一個半徑為5.0的詞對象myCirc匕 井榆出這個詞的半徑及面積。(2)修改這個詞的半徑,將其半徑擴(kuò)大到1.1倍后,重新榆出它的半徑及面積。解題要求:使用Math.PI,計(jì)算圓面積。榆出參考樣例如圖所示。程序
4、輸入?yún)?shù)如下本題沒有要求手動愉入蝴程序運(yùn)行結(jié)果如下The area of the circle of radius 5.0 is 78.53981633974483The area of the circle of radius 5 5 is 95.03317777109125實(shí)險步驟:程序清單:public class Circle public Circle() 無參的構(gòu)造方法private double radius;類私有的 double 型數(shù)據(jù) radiusprivate static int numberOfObjects;靜態(tài)數(shù)據(jù)域private double area;publ
5、ic void setRadius(double radius)this, radius=radius;)public double getRadiusO return radius; /radius 的 set/get 方法 public Circle(double radius)public double getArea(double radius) area = radius*radius*Xath. PI; 面積方程System, out. println(zzThe area of the circle of radius "+radius+" is "
6、+area);/輸出圓而積 return area;)public double getArea(Circle circlel)area = circlel. getRadius 0 *circlel. getRadius 0 *Math. PI;System, out. printlnC'The area of the circle of radius "+this. radius+" is /z+this. area);return area;)public static int getNumberOfObjects0 return 2;)public stat
7、ic void main(Stringargs) Circle circlel = new Circle(5. 0);circlel. getArea(5. 0);Circle circle2 = new Circle(5. 5);circle2. getArea(5. 5);)測試類7任務(wù)1實(shí)瞼小結(jié):1 .主要談?wù)勀阍谠搶?shí)驗(yàn)中用到了哪些具體技術(shù)或知識點(diǎn)?該技術(shù)或知識點(diǎn)解決了什麼問 題?你的設(shè)計(jì)的優(yōu)缺點(diǎn)?2 .你在實(shí)驗(yàn)中遇到的問題,你是如何解決的?技術(shù)和知識點(diǎn):類的定義和對象的創(chuàng)建,全局變量的使用,使用Math. PI。遇到的問題:開始沒有使用Math. PI,導(dǎo)致輸出結(jié)果不匹配JAVA全局變
8、量(或稱成員變量)可分兩種,一種是靜態(tài)變量,另一種是實(shí)例變量,即在類 體中定義的變量,有三點(diǎn)得注意:一、成員變量不能在類體中先聲明(定義)后賦值,但 靜態(tài)變量可以先在類體中聲明,然后在方法中膩值。二、成員變量可以在類體中聲明同時進(jìn) 行賦值。三、在數(shù)據(jù)類型轉(zhuǎn)換上,有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換(即強(qiáng)制類型轉(zhuǎn)換),隱式轉(zhuǎn)換只的精確度,如果要能從高字節(jié)的數(shù)據(jù)類型向低字節(jié)的數(shù)據(jù)類型轉(zhuǎn)換,這樣不會丟失原有 將變量從低字節(jié)的數(shù)據(jù)類型轉(zhuǎn)換成高字節(jié)的數(shù)據(jù)類型,只能使用顯式轉(zhuǎn)換任務(wù)2、設(shè)計(jì)一個名為Fan的類來表示一個風(fēng)扇。這個類包括:(1)三個名為SLOW、MEDIUM和FAST其值分別是1、2和3的?,摚硎撅L(fēng)扇的速度
9、 的三個等級。(2) 一個名為spuud的int類型的私有數(shù)據(jù)域,表示風(fēng)扇的速度(默認(rèn)值為SLOW')。(3) 一個名為。n的booluui類型私有數(shù)據(jù)域,表示風(fēng)扇是否打開(默認(rèn)值為falsu)。(4) 一個名為radius的dmibk類型私有數(shù)據(jù)域,表示風(fēng)扇的半徑(默認(rèn)值為5)。(5) 一個名為color的String類型數(shù)據(jù)城,表示風(fēng)扇的顏色(或認(rèn)值為bluer)。(6)這四個數(shù)據(jù)域的訪問器和修改署。(7) 一個創(chuàng)迂默認(rèn)風(fēng)扇的無參構(gòu)造方法。(8) 一個名為tcString ()的方法,返回描述風(fēng)扇的字符串。如果風(fēng)扇是打開的,該方法返 回風(fēng)扇的速度、顏色和半徑。如果風(fēng)扇沒有打開,該方
10、法就會返回“風(fēng)扇沒有開啟”及風(fēng)扇 顏色與半徑。要求:(1)畫出該類的UML圖。(2)實(shí)現(xiàn)這個類。(3)編寫一個測試程序,創(chuàng)建兩個Fan對象,并分別從鍵叁輸入兩個風(fēng)扇的半徑、顏色和 狀態(tài),按照如下的樣例輸出。程序福入勢數(shù)如下 5 red true 6 yenow false 程序運(yùn)行結(jié)果如下 孩風(fēng)扇的速度為3 ©百色是red 半徑是5.0 風(fēng)院沒有開啟 該風(fēng)質(zhì)的奧面色罡ye»ow 半徑是6.0 代巧運(yùn)行成功UML 圖:Fan十speed: int(SLOW) +radius:double(5) +color:String(blue) +on:boolean(false) +
11、FanQ+setRadius( double radius )+getRadius()+setSpeed( int speed )+getSpeed()+setColor( String color)+getColor()+setOn( boolean on )+toString實(shí)險步驟:程序清單:import java. util. Scanner;public class Fan private String color;private int speed=3;private double radius;static private boolean on;public FanO /Fan類
12、的無參構(gòu)造方法public void setRadius( double radius ) this, radius = radius; /radius 的 set 方法public void setSpeed( int speed ) this, speed = speed;/speed 的 set 方法public void setColor( String color ) this, color = color;/color 的 set 方法public void setOn( boolean on ) this. on = on;on的set方法public double getRad
13、ius( )System, out. printin (“半徑是"+ radius );return radius; /radius 的 get 方法public int getSpeed( ) System. out. println("該風(fēng)扇的速度為"+ speed ); return speed;/speed 的 get 方法public String getColor( )System. out. print In ("該風(fēng)扇的顏色是"+ color ); return color;/Fan 類public static void ma
14、in(String args) Scanner input = new Scanner(System, in );Fan fanl = new FanO ;fanl. radius = input. nextDoubleO ;fanl. color=input. next () ;/輸入 color 與 radiusFan. on=input. nextBoolean0;(if(on=true)fanl. getSpeedO ;System. out. print In ("顏色是"+ fanl. color);fanl. getRadiusO ;)else if (on=
15、false) System, out. println("風(fēng)扇沒有開啟“);System. out. print In (“該風(fēng)扇的顏色是"+ fanl. color);fanl. getRadius 0;System, out. printin ;)Fan fan2 = new FanO ;fan2. radius = input. nextDoubleO ;fan2. color=input. next 0 ;Fan. on=input. nextBoolean0;(if(on=true)System, out. printin("該風(fēng)扇的速度為 2"
16、;);System. out. print In (“顏色是"+ fan2. color);fan2. getRadiusO ;)else if(on=false) System, out. printing風(fēng)扇沒有開啟“);System. out. printin("該風(fēng)扇的顏色是"+ fan2. color);fan2. getRadius 0;)任務(wù)2實(shí)驗(yàn)小結(jié):3 .主要談?wù)勀阍谠搶?shí)驗(yàn)中用到了哪些具體技術(shù)或知識點(diǎn)?該技術(shù)或知識點(diǎn)解決了什麼問 題?你的設(shè)計(jì)的優(yōu)缺點(diǎn)?4 .你在實(shí)驗(yàn)中遇到的問題,你是如何解決的?知識點(diǎn):boolean型函數(shù)的使用,toString
17、 ()方法的運(yùn)用;遇到的問題:主類代碼書寫不熟練。6任務(wù)3、根據(jù)下列洽出的測試類TustPNnt代碼及樣例,設(shè)計(jì)二維平面上的點(diǎn)(Point)類, 并用下列洽定的測試類TestPoint,測試自己設(shè)計(jì)的Point類。import java.utiLScamicr;public class TestPoint public static void main(String0 a)Seamier in = new Scanncr(System.in);Point pl = new Point。;pl .sctX(inncxir)oublcO);pl .setY(in.nextDouble0);Poin
18、t p2 = new Point(in.ncxtr)oublc(),in.nextDoubleO);Systcm.out.printf(Mn 兩點(diǎn)距離為.2,pl.distance(p2);System.outprintffn 兩點(diǎn)距離為.2/,pl.distance(2030);|程序輸入?yún)?shù)如卜3456兩點(diǎn)距離為2.83兩點(diǎn)距高為31.06代碼運(yùn)行成功實(shí)驗(yàn)步驟:程序清單:import java. util. Scanner;class Point double X;double Y;double distance;public Point() 無參構(gòu)造方法public Point(doub
19、le X, double Y) this. X=X;this. Y=Y;)public double getXO public void setX(double X) this.X = X;/X 的 setget 方法public double getY0 return Y;)public void setY(double Y) this. Y = Y;/Y 的 setget 方法public double distance(double a,double b) distance=Math, sqrt(a-X)*(a-X) + (b-Y)*(b-Y); return distance;)pub
20、lic double distance(Point p2) distance=this. distance(p2. getXO, p2. getY0); return distance;)public class TestPoint public static void main(String a)Scanner in = new Scanner(System, in);Point pl = new Point 0;pl. setX(in. nextDoubleO);pl. setY(in. nextDoubleO);Point p2 = new Point(in. nextDouble 0,
21、 in. nextDouble 0);System, out. printf ("n 兩點(diǎn)距離為%. 2f” , pl. distance (p2);System, out. printf Cn 兩點(diǎn)距離為%. 2f” , pl. distance (20, 30); ) 測試類任務(wù)3實(shí)驗(yàn)小結(jié):主要談?wù)勀阍谠搶?shí)驗(yàn)中用到了哪些具體技術(shù)或知識點(diǎn)?該技術(shù)或知識點(diǎn)解決了什麼問題? 你的設(shè)計(jì)的優(yōu)缺點(diǎn)?你在實(shí)驗(yàn)中遇到的問題,你是如何解決的?主類修飾符為public成員變量聲明8成員變量是類的屬性,聲明的一般格式為:變量修飾符 成員變量類型)成員變量名)構(gòu)造函數(shù)具有如下特點(diǎn):(1)構(gòu)造方法的方法名
22、必須與類名相同,其它方法不能和類名相 同。(2)構(gòu)造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。(3) 構(gòu)造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數(shù)傳給對象的域。(4)構(gòu)造方法不能由編程人員調(diào)用,而由系統(tǒng)調(diào)用。(5) 一個類可以定義多個構(gòu)造方法, 如果在定義類時沒有定義構(gòu)造方法,則編譯系統(tǒng)會自動插入一個無參數(shù)的默認(rèn)構(gòu)造器,這個 構(gòu)造器不執(zhí)行任何代碼。(6)構(gòu)造方法可以重載,以參數(shù)的個數(shù),類型,或排列順序區(qū)分任務(wù)4、根據(jù)下面的類圖,編寫課程Course類和學(xué)生Siudunt類。Course類說明如下:(1) addStudunt方法用于添加一個選課的
23、學(xué)生;(2) teString方法用于返回課程的所有信息,包括課程名稱和選保學(xué)生。Studum類說明如下:(1) teString方法用于返回學(xué)生的信息。注意:圖中省略了兩個類所有數(shù)據(jù)域的修改若和讀取若。CourseolHStudent-name:String-stuList:Student*numberOfStudents:int-stuNo:int-name:String,Student。Student(stuNo:int, name:String)*toString(): String4 Course ()4Course(name:String)+Course(na me :Stri n
24、g, statist: Student! h numberOfStudents:int)+addStudent(stu:Student)+toString(): String最后編寫測試類,創(chuàng)建一門課程和兩個學(xué)生對象,并為該課程添加兩個選課學(xué)生,面向?qū)ο蠹夹g(shù)1張三2李四程序運(yùn)行結(jié)果如下型程名稱面向?qū)κ芗夹g(shù)選醫(yī)學(xué)生名單學(xué)號1姓名張三學(xué)號2姓名李四實(shí)險步臊:程序清單:import java. util. Scanner;import java, uti1. Arrays;public class TestStudentCourse 9public static void main(String a
25、rgs) Scanner input=new Scanner(System, in); String s;Student st=new Student2;int n= n=st. length;長度trys=input. next 0 ;for(int i=0;i<st. length;i+)stLi.=new Student(input, nextlnt0, input, next 0);Course c=new Course(s, st, n);System. out. println(c. toStringO) ;/循環(huán) finallyinput. closeO ;)class S
26、tudent (private int stuNo;private String name;public Student () /student的無參構(gòu)造方法public Student(int stuNo, String name) this. stuNo=stuNo;this, name=name;)public int getStuNoO return stuNo;)public void setStuNo(int stuNo) this. stuNo = stuNo;/StuNo 的 setget 方法public String getName0 return name;)public
27、 void setName(String name) this, name = name;/name 的 setget 方法public String toStringO return n 學(xué)號”+ stuNo + “姓名"+ name ;)class Course private String name;private int numberOfStudent;private StudentstuList ;public Course0 /course的無參構(gòu)造方法public Course(String name, Student stuList, int numberOfStudent) this, name=name;this. stuList=stuList;this. numberOfStudent=numberOfStudent;)public String getName0 return name;)public void setName(String name) this, name = name; /name 的 getset 方法public int getNumberOfStudent0 return numberOfStudent;)public void setNumberOfStudent(int
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年秋學(xué)??倓?wù)后勤工作計(jì)劃
- 2025年春季學(xué)期安全工作計(jì)劃范文
- 2025年秘書處工作計(jì)劃模板
- Unit 7 Be wise with money 第5課時 Integration說課稿 -2024-2025學(xué)年譯林版(2024)七年級英語上冊
- 2025年教學(xué)部門個人個人工作計(jì)劃
- 2025年度渠道銷售工作計(jì)劃表銷售工作計(jì)劃
- 止咳化痰類藥物相關(guān)行業(yè)投資規(guī)劃報告
- Unit1 Lesson2 Wheres she from(說課稿)-四年級英語下冊同步備課系列(魯科版五四制三起)
- 2025幼兒園中班開學(xué)教學(xué)計(jì)劃
- 2025年第二學(xué)期學(xué)生會工作計(jì)劃書
- 2023-2024學(xué)年上海市普陀區(qū)三年級(上)期末數(shù)學(xué)試卷
- 小班班本課程《吃飯這件小事》
- 東風(fēng)7C型(DF7C)內(nèi)燃機(jī)車
- 標(biāo)桿房企人力資源體系研究之龍湖
- 規(guī)則大副貨運(yùn)知識點(diǎn)
- 《2022年上海市初中語文課程終結(jié)性評價指南》中規(guī)定的150個文言實(shí)詞
- 關(guān)于轉(zhuǎn)發(fā)《關(guān)于進(jìn)一步加強(qiáng)少先隊(duì)輔導(dǎo)員隊(duì)伍建設(shè)的若干意見》的通知
- 愛麗絲夢游仙境話劇中英文劇本(共6頁)
- 書法少年宮活動記錄
- 鐵路橋梁鋼結(jié)構(gòu)設(shè)計(jì)規(guī)范(TB100022--99)修訂簡介
- 水文氣象報告
評論
0/150
提交評論