實(shí)驗(yàn)項(xiàng)目(二)Java中的面向?qū)ο筇匦?9new_第1頁(yè)
實(shí)驗(yàn)項(xiàng)目(二)Java中的面向?qū)ο筇匦?9new_第2頁(yè)
實(shí)驗(yàn)項(xiàng)目(二)Java中的面向?qū)ο筇匦?9new_第3頁(yè)
實(shí)驗(yàn)項(xiàng)目(二)Java中的面向?qū)ο筇匦?9new_第4頁(yè)
實(shí)驗(yàn)項(xiàng)目(二)Java中的面向?qū)ο筇匦?9new_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)項(xiàng)目(二) Java中的面向?qū)ο筇匦砸?、?shí)驗(yàn)?zāi)康? 掌握J(rèn)ava中類(lèi)、對(duì)象、包、接口的創(chuàng)建和使用。2 掌握繼承、封裝、多態(tài)性的實(shí)現(xiàn)機(jī)制。二、實(shí)驗(yàn)要求: 1. 上機(jī)實(shí)驗(yàn)前,按照每一個(gè)實(shí)驗(yàn)題目的具體要求提前完成準(zhǔn)備工作,如:查找資料、設(shè)計(jì)算法、寫(xiě)出全部源程序,做好預(yù)習(xí)筆記,做到有準(zhǔn)備地上機(jī)。由實(shí)驗(yàn)小組組長(zhǎng)先行檢查本小組各成員的預(yù)習(xí)報(bào)告,指導(dǎo)教師上機(jī)前抽查50%的學(xué)生預(yù)習(xí)報(bào)告。2. 上機(jī)實(shí)驗(yàn)課內(nèi),積極調(diào)試及修改程序。得到正確運(yùn)行結(jié)果后,積極主動(dòng)要求指導(dǎo)教師驗(yàn)收程序,回答指導(dǎo)教師提出的問(wèn)題。3. 上機(jī)實(shí)驗(yàn)課后,學(xué)生應(yīng)根據(jù)實(shí)驗(yàn)數(shù)據(jù)及結(jié)果,完成實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告是評(píng)定實(shí)驗(yàn)成績(jī)的重要組成部分。完成的實(shí)驗(yàn)

2、報(bào)告交給實(shí)驗(yàn)小組組長(zhǎng),實(shí)驗(yàn)小組組長(zhǎng)收齊本組的實(shí)驗(yàn)報(bào)告后統(tǒng)一交課代表,課代表收齊本班的實(shí)驗(yàn)報(bào)告后統(tǒng)一交指導(dǎo)教師審閱評(píng)定。4. 每次上交的實(shí)驗(yàn)報(bào)告每個(gè)實(shí)驗(yàn)小組必須有1/3的成員為打印版的實(shí)驗(yàn)報(bào)告,其他成員可上交電子版的實(shí)驗(yàn)報(bào)告。由實(shí)驗(yàn)小組組長(zhǎng)確定交打印版的成員。三、實(shí)驗(yàn)內(nèi)容任務(wù)1定義一個(gè)復(fù)數(shù)類(lèi)Complex,然后編寫(xiě)測(cè)試類(lèi)測(cè)試該復(fù)數(shù)類(lèi)Complex。最后參考思考題提出并回答你的探究問(wèn)題。復(fù)數(shù)類(lèi)Complex必須滿(mǎn)足如下要求1 復(fù)數(shù)類(lèi)Complex的屬性有:兩個(gè)int變量r和i(分別表示一個(gè)復(fù)數(shù)的實(shí)部與虛部)。2 復(fù)數(shù)類(lèi)Complex的方法有:Complex(int r,int i):構(gòu)造方法,形參

3、r賦值給復(fù)數(shù)的實(shí)部,i賦值給虛部。Complex():構(gòu)造方法,將復(fù)數(shù)的實(shí)部與虛部都賦值為0。Complex complexAdd(Complex a):將當(dāng)前復(fù)數(shù)對(duì)象與參數(shù)相加。String toString():把當(dāng)前復(fù)數(shù)對(duì)象的實(shí)部與虛部組合成a+bi的字符串形式,其中,a和b分別為實(shí)部與虛部的數(shù)據(jù)。原代碼:class Complex int i,r; Complex(int r,int i) this.r=r;this.i=i; public Complex complexAdd(Complex c) /對(duì)象作為參數(shù), 按引用傳遞 return new Complex(r+c.r,i+c

4、.i); /返回值應(yīng)是該類(lèi)的一個(gè)實(shí)例 public String toString() String res;if(i=0)res=r+;elseif(i0)res=r+i+i; elseres=r+i+i; return res; class Test public static void main(String args) Complex c1=new Complex(1,2); Complex c2=new Complex(2,3); Complex c3=plexAdd(c2); System.out.println(c3.toString();運(yùn)行結(jié)果:任務(wù)2設(shè)計(jì)一個(gè)分?jǐn)?shù)類(lèi)(Rati

5、onal),要求分?jǐn)?shù)包括分子和分母兩個(gè)變量,提供能進(jìn)行分?jǐn)?shù)運(yùn)算的方法。然后編寫(xiě)一個(gè)測(cè)試類(lèi)測(cè)試該類(lèi)。class Rationalprivate int num,den;public Rational(int n,int d) num=n; den=(d=0?1:d);public Rational() this(1,1); public Rational(Rational r) this(r.num,r.den);private void simplify (Rational r) int g; if (r.num!=0) g=getGCD (r.num,r.den); r.num/=g; r.

6、den/=g; /處理符號(hào) if(r.den0) r.den=- r.den; r.num=-r.num; private int getGCD(int m,int n) int t,r; if (m= 0) ? r : 0; / 設(shè)置圓的半徑public double getR() return r; public double getArea() return r * r * 3.14159; / 返回圓的面積public String toString() return new String(+getX()+,+getY()+) +;+r=+r ); public boolean isI

7、nCircle(int x,int y) if(x*x+y*y)r*r)return true;elsereturn false;public boolean isInCircle(Point p) if(p.getX()*p.getX()+p.getY()*p.getY()r*r)return true;elsereturn false;public class TestCircle public static void main(String args) Circle circle1=new Circle(20,30,40);System.out.println(circle1. getA

8、rea();System.out.println(circle1);Circle circle2=new Circle();System.out.println(circle2. getArea();System.out.println(circle2);Point p=new Point(20,20);Circle circle3=new Circle(p,10);System.out.println(circle3);Point p2=new Point(11,12);Circle circle4=new Circle(20,30,20);if(circle4.isInCircle(p2)

9、System.out.println(在圓內(nèi));elseSystem.out.println(不再圓內(nèi));if(circle4.isInCircle(20,40)System.out.println(20,40)在圓內(nèi));elseSystem.out.println(20,40)不再圓內(nèi)); 運(yùn)行結(jié)果:任務(wù)4定義一個(gè)接口,聲明一個(gè)方法計(jì)算長(zhǎng)方形的面積,再定義一個(gè)具體的類(lèi)實(shí)現(xiàn)這個(gè)接口,最后編寫(xiě)一個(gè)測(cè)試類(lèi)使用這個(gè)接口。import javax.swing.JOptionPane;interface Shape public abstract double area(); class Square

10、implements Shape protected int xPosition, yPosition; public Square() xPosition=0; yPosition=0; public Square(int xP, int yP) xPosition = xP; yPosition = yP; public String toString() return ( + xPosition + , + yPosition + ); public double area() return xPosition*yPosition; class TestInterface public

11、static void main(String args) Square square1 = new Square(2, 15); Square square2 = new Square(4, 10); Square square3 = new Square(8, 9); Shape Shapes = new Shape3; Shapes0 = square1; Shapes1 = square2; Shapes2 = square3; String output=; for (int i = 0; i Shapes.length; i+) output += n + Shapesi.toSt

12、ring() + n 面積= + Shapesi.area() ; JOptionPane.showMessageDialog(null, output, Demo,JOptionPane.INFORMATION_MESSAGE); System.exit(0); 運(yùn)行結(jié)果:任務(wù)5定義一個(gè)接口,定義有關(guān)算術(shù)的屬性,并創(chuàng)建4個(gè)實(shí)現(xiàn)這個(gè)接口的類(lèi),分別進(jìn)行加、減、乘、除的運(yùn)算。import javax.swing.JOptionPane;interface calculate public abstract double add(); public abstract double minus();

13、public abstract double mul(); public abstract double div();class Num implements calculate protected int xPosition, yPosition; public Num() xPosition=0; yPosition=0; public Num(int xP, int yP) xPosition = xP; yPosition = yP; public String toString() return ( + xPosition + , + yPosition + ); public do

14、uble add() return xPosition+yPosition; public double minus() return xPosition-yPosition; public double mul() return xPosition*yPosition; public double div() return xPosition/yPosition; class TestInterface2 public static void main(String args) Num num1 = new Num(30, 20);Num num2 = new Num(24, 4);Num

15、num3 = new Num(22, 11); calculate calculates = new calculate3; calculates0 = num1; calculates1 = num2; calculates2 = num3; String output=; for (int i = 0; i calculates.length; i+) output += n +calculatesi.toString() + n 相加得 + calculatesi.add() + n 相減得 + calculatesi.minus()+n相乘得+calculatesi.mul()+n相除

16、得+calculatesi.div(); JOptionPane.showMessageDialog(null,output,Demo,JOptionPane.INFORMATION_MESSAGE); System.exit(0); 運(yùn)行結(jié)果:任務(wù)6定義一個(gè)包,包中包含一個(gè)求面積和長(zhǎng)度的接口。在其他文件中定義矩形類(lèi)、三角形類(lèi)和圓類(lèi)分別實(shí)現(xiàn)這個(gè)接口求出各自的面積和長(zhǎng)度。import eva.Point;class Circle extends Point private double radius=1.0; public double findArea() return radius * ra

17、dius * Math.PI; public double findPerimeter() return 2 * radius * Math.PI; class Rectangle extends Point private double width=4.0; private double height = 2.0; public double findArea() return width * height; public double findPerimeter() return 2 * (width + height); class Triangle extends Point priv

18、ate double a=2.0; private double b=3.0; private double c=4.0; private double p=(a+b+c)/2; public double findArea() return Math.sqrt(p*(p-a)*(p-b)*(p-c); public double findPerimeter() return a+b+c; public class TestAbstractClass public static void test(Point g) System.out.println(面積+g.findArea();Syst

19、em.out.println(周長(zhǎng)+g.findPerimeter();public static void main(String args) Point g=new Point3; g 0 = new Circle();g 1 = new Rectangle();g 2 = new Triangle();for(int i=0;i找3和6的最小公倍數(shù)(6)=通分= (1*2)/(3*2)+(1*1)/(6*1) =3/6 =找分子和分母的最大公約數(shù)(3) =約分=(3/3)/(6/3) =1/2參考源程序/ Rational.javapublic class Rational /定義2個(gè)i

20、nt型實(shí)例變量private int numerator;private int denominator;/定義構(gòu)造方法,初始化分子與分母public Rational(int n,int d) numerator=n; denominator=(d=0?1:d); simplify(this) ;/化成最簡(jiǎn)分?jǐn)?shù)/構(gòu)造方法重載public Rational() this(1,1); /構(gòu)造方法重載public Rational(Rational r) this(r.numerator,r.denominator);/把分?jǐn)?shù)化成最簡(jiǎn)分?jǐn)?shù)private void simplify (Rational r) int g; if (r.numerator!=0) g=getGCD (r.numerator,r.denominator); r.numerator/=g; r.denominator/=g; /處理符號(hào) if(r.denominator 0) r.denominator=- r.denominator; r.numerator=-r.numerator; /定義找最大公約數(shù)方法private int getGCD(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論