當前位置:編程學習大全網 - 編程語言 - 尋編寫java程序的高手 有兩個程序需要編寫 若能給出真確答案 還是可以加分

尋編寫java程序的高手 有兩個程序需要編寫 若能給出真確答案 還是可以加分

第壹個題目是不是少了點什麽信息,這麽寫出類來好像沒什麽意義啊,連個動作都沒執行!我這裏是按照題目的要求寫的代碼,壹***是2個文件。

package?baidu;?

/**?

*?文件名:Engine.java

*?@author?

*?@version?1.0,創建時間:2012-4-15?下午06:44:18?

*?@since?jdk1.6

*?引擎類,它有壹個引擎類型的屬性type,

*?其值可能為噴氣引擎(whiff)或螺旋槳引擎(airscrew),

*/

public?class?Engine

{

//壹個飛機引擎的私有屬性,因為引擎的可能性只有兩種,為了限制可能性,所以此處使用枚舉類型

private?enum?type{whiff,airscrew};

}

package?baidu;?

/**?

*?文件名:Airplane.java

*?@author?

*?@version?1.0,創建時間:2012-4-15?下午06:43:30?

*?@since?jdk1.6

*?飛機類,最基礎的類。它有1~4個引擎

*/

public?class?Airplane

{

//飛機的4個引擎,此處分別命名為engine1~4

private?Engine?engine1;

private?Engine?engine2;

private?Engine?engine3;

private?Engine?engine4;

/**

?*?主函數中來執行操作*/

public?static?void?main(String[]?args)

{

//定義初始化兩個對象噴氣式飛機(jet)和螺旋槳飛機(PDAirplane)

Airplane?jetAirplane?=?new?Airplane();

Airplane?PDAirplane?=?new?Airplane();

}

}?

第二題還好,只是有個問題:java裏面的接口明明比抽象類好用,擴展性也更好,為什呢不用接口呢?所以我只能說妳出了2個題目都是莫名其妙的。下面是我按照題目寫的代碼,有3個文件,分別代碼圖形、長方形、三角形:

package?baidu;?

/**?

*?文件名:Polygon.java

*?@version?1.0,創建時間:2012-4-15?下午06:54:50?

*?@since?jdk1.6

*?抽象類,代表壹個圖形,當做是接口處理吧,子類要實現的接口就是getArea()方法。

*/

public?abstract?class?Polygon

{

//該圖形的面積

protected?double?area;

//這裏聲明方法,不定義

public?abstract?void?getArea();

/**

?*?這裏弄幾個測試用例來測試壹下

?*?@param?args

?*/

public?static?void?main(String[]?args)

{

Polygon?changfangPolygon?=?new?Rectangle(10,?10.5);

changfangPolygon.getArea();

Polygon?sanjiaopPolygon?=?new?Triangle(4,?5,?3);

sanjiaopPolygon.getArea();

}

}

package?baidu;?

/**?

*?文件名:Rectangle.java

*?@version?1.0,創建時間:2012-4-15?下午06:57:27?

*?@since?jdk1.6

*?矩形類,繼承了圖形類的方法和接口。

*/

public?class?Rectangle?extends?Polygon

{

//長方形的長度和寬度

private?double?length;

private?double?width;

/**

?*?構造方法,用長度和寬度來初始化這個長方形

?*?@param?len?長方形的長度

?*?@param?width?長方形的寬度

?*/

public?Rectangle(double?len,double?width)

{

//為了防止輸入的數據有負數什麽的,要把他們都轉成正數

this.length?=?Math.abs(len);

this.width?=?Math.abs(width);

}

/**重寫父類的方法,計算出面積,輸出結果到控制臺*/

@Override

public?void?getArea()

{

/*這裏面是使用了父類的area屬性,通過protected繼承了下來*/

area?=?this.length*this.width;

System.out.println("長方形長度:"+this.length+",寬度:"+this.width+",面積:"+area);

}

}

package?baidu;?

/**?

*?文件名:Triangle.java

*?@version?1.0,創建時間:2012-4-15?下午07:11:09?

*?@since?jdk1.6

*?三角形類,繼承了圖形類的方法

*/

public?class?Triangle?extends?Polygon

{

/**三角形的三邊,分別命名為abc好了,隨便*/

private?double?edgeA;

private?double?edgeB;

private?double?edgeC;

/**

?*?三角形的構造函數,首先驗證輸入的數據是否合法才初始化

?*?@param?a

?*?@param?b

?*?@param?c

?*/

public?Triangle(double?a,double?b,double?c)

{

/*臨時變量,存儲輸入的abc三條邊*/

double?aa?,bb?,cc;

//是否是三角形的判斷

boolean?isTriangle;

//先保證三條邊都是正數,使用取絕對值的方法

aa?=?Math.abs(a);

bb?=?Math.abs(b);

cc?=?Math.abs(c);

//驗證兩邊之和是否大於第三邊

isTriangle?=?(aa+bb>cc)&&(bb+cc>aa)&&(aa+cc>bb);

if(!isTriangle)

{

System.out.println("您輸入的三邊有錯誤,兩邊之和大於第三邊!");

this.edgeA?=?0;

this.edgeB?=?0;

this.edgeC?=?0;

return?;

}

this.edgeA?=?aa;

this.edgeB?=?bb;

this.edgeC?=?cc;

}

/*?(non-Javadoc)

?*?@see?baidu.Polygon#getArea()

?*?重載父類的方法,計算出圖形的面積,並且輸出到控制臺

?*?三角形的面積計算公式

?*?(海倫公式)(p=(a+b+c)/2)

S=√[p(p-a)(p-b)(p-c)]

?*/

@Override

public?void?getArea()

{

double?p;

p?=(this.edgeA+this.edgeB+this.edgeC)/2;

area?=?Math.sqrt(p*(p-edgeA)*(p-edgeB)*(p-edgeC));

System.out.println("三角形長度:"+this.edgeA+","+this.edgeB+","+this.edgeC+",面積:"+area);

}

}

  • 上一篇:設計並制作壹個信號頻率測量儀。。。
  • 下一篇:魚骨圖分析法需要註意什麽
  • copyright 2024編程學習大全網