Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 9 years ago

JAVA 煩請各位大大教我以下問題..

我是初學者

煩請各位大大解答以下問題..

謝謝

class Calculator {

double price; // 每平方公尺的價格(元) Calculator(double price) { // 建構方法

this.price = price;

} double calculatePrice(Land l) {

return calculatePrice(price,l);

} double calculatePrice(double price,Land l) {

return l.area() * price; // 透過多形呼叫正確的 area() 方法

} double calculateAllPrices(Land... Lands) {

// 使用多重定義的版本

return calculateAllPrices(price,Lands);

} double calculateAllPrices(double price,

Land... Lands) { // 多重定義的版本

double total = 0; // 加總變數 for(Land l : Lands) { // 一一取出各個物件

total += calculatePrice(price,l); // 個別計算並累加

} return total;

}

}public class Lands4 {

public static void main(String[] argv) {

Circle c = new Circle(5); // 一塊圓形的地

Square s = new Square(5); // 一塊正方形的地 Calculator ca = new Calculator(3000.0); // 每平方公尺3000元 System.out.println("價值:" + // 呼叫可指定地價的版本

ca.calculatePrice(4000,c));

System.out.println("總價值:" + // 使用匿名陣列

ca.calculateAllPrices(4000,c,s));

}

}

1.請修改以上程式,新增一個Rectangle類別,代表矩形的土地,並在main()中測試新增的類別

2.延續上一題,請再加入一個Triangle類別,代表直角三角形的土地,請測試之

3.請沿用上一題所撰寫的程式,另外撰寫一個Utility類別,提供有一個max()方法,可以傳入任意個代表土地的物件,並傳回其中面積最大的一塊土地的面積

2 Answers

Rating
  • 9 years ago
    Favorite Answer

    1.

    class Rectangle extends Land{

    double length;

    double wide;

    public Rectangle(length, wide){

    this.length = length;

    this.wide = wide;

    }

    public double area(){

    return length * wide;

    }

    }

    Land4 插入

    Rectangle r = new Rectangle(4.2, 5.5);

    ices(4000,c,s, r)); //加一個 r

    2.

    class Triangle extends Land{

    double bottom;

    double high;

    public Triangle(bottom, high){

    this.bottom = bottom;

    this.high = high;

    }

    public double area(){

    return bottom * high * 0.5;

    }

    }

    Land4 插入

    Triangle t = new Triangle(4.2, 5.5);

    ices(4000,c,s, r, t)); //加一個 t

    3.

    class Utility{

    public double max(Land... lands){

    Land max = lands[0];

    for(Land l : lands) { // 一一取出各個物件

    if(l.area() > max.area()){

    max = l;

    }

    return max.area();

    }

    }

    }

    • Login to reply the answers
  • 9 years ago

    請你把其他程式碼附上可以嗎?

    缺很大喔

    • Login to reply the answers
Still have questions? Get your answers by asking now.