2014-03-02 58 views
0

我正在爲我的計算機科學類做一個任務,但是我陷入了這一部分。我應該編寫給定的主要方法和實例變量的構造函數。構造函數需要有一個ArrayList和一個Array作爲參數,但我不完全確定如何。ArrayList和Array作爲構造函數的參數

的指導和主要方法如下:

使用提供完成構造

import java.util.ArrayList; 
class RectangleStats 
{ 
//instance variables go here 

//The constructor for the RectangleStats class takes an ArrayList and an array as parameters for 

// width and length, respectively. 


// code for constructor goes here 
// The RectangleStatsTesterClass assigns the width of two rectangles to an ArrayList and assigns the 
// length of two rectangles to an array. The calcRectangleArea() and printArea() methods are invoked to 
// calculate and print the area of the two rectangles. 
public class RectangleStatsTesterClass 
{ 
     public static void main(String[] args) 

{ 

     ArrayList dblWidth = new ArrayList(); 

     dblWidth.add(5.2); 

     dblWidth.add(9.3); 

     double [ ] dblLength = {11.1, 4.7}; 


     RectangleStats rectStats = new RectangleStats(dblWidth, dblLength); 


     rectStats.calcRectangleArea(); 

     rectStats.printArea(); 

     } 

    } 

我目前擁有的構造函數的註釋和代碼是這樣的: 公共RectangleStats (雙w,雙l) 寬度= w; length = 1; area = 0; }

但我不知道如果它的權利或不..幫助?

+0

你的構造函數在哪裏? – Kakarot

+0

這就是我要弄清楚..我寫下了我認爲的構造應該是,但即時通訊不太確定.. – user3164890

回答

2

如果您傳遞的實際參數分別爲ArrayListarray,那麼您的方法簽名中的形式參數也應該是相同的。那就是:

public RectangleStats(ArrayList<Double> arg0, double[] arg1)

你可以這樣分配arg0arg1(或任何你標識符)到您的實例變量。這就是說,實施背後的整個想法很差(例如:使用ArrayListarray而不是其中之一)。

此外,當你宣佈你ArrayList,做法如下: ArrayList<Double> dblWidth = new ArrayList<Double>();

它幾乎總是更好的指定類,你將要添加的對象。

+0

感謝您的答案 是的,我猜測使用它們的實現並不是那麼好,但不幸的是,我不是提出問題的人:/ – user3164890

+0

沒問題。我知道這是家庭作業,你不能改變你的老師的問題,但是如果你有興趣,有一個'寬度'和'長度'參數的'Rectangle'類會更有意義 - 那麼你可以簡單地聲明一個擁有其中2個元素的數組,而不是擁有一個對象,比如你的問題中的一個元素擁有兩個矩形寬度和兩個長度(這使得它更不合理)。 – ujvl

2

有了一個好的java的書或者你可能有教程輕鬆解決你的問題,但是這是你會怎麼做:

ArrayList<Double> w; 
double []length; 
public RectangleStats(ArrayList<Double> width, double length[]) 
{ 
    this.width = width; 
    this.length = length; 

{ 

我猜這些變量的構造,因此在初始化之外使用。

+0

感謝您的回答! – user3164890