2015-06-16 21 views
2

在我的ReadInput類中,我讀取了一個文件,其中包含按空格分隔的整數,並將它們放入inputArray中。然後我想在我的B類中使用inputArray(和它的大小),我試圖用get和set方法做​​到這一點,但我想我沒有正確使用它們,並且無法確定我的錯誤。誰能幫忙?由於使用get和set方法在兩個類之間傳遞數組(012B)

​​
+0

你的代碼現在不能編譯。例如,在'B'的構造函數中,你可以說'inputs = new int [in.getSize()];''in'in'沒有定義。 – Jashaszun

+0

@Jashaszun是的這是我的代碼寫在下面我聲明類B,ReadInput in = new ReadInput(); – Chalupa

+0

啊沒關係......我完全錯過了。抱歉。 – Jashaszun

回答

0

B的構造函數,你需要調用in.initializeArrays()in.getJobs()

現在,in.getSize()0,因爲這是默認值ReadInput.size。另外,in.getInputArray()將爲null,因爲這是默認值ReadInput.inputArray

或者,你可以刪除ReadInput.initializeArrays()ReadInput.getJobs()和簡單的代碼進入一個無參數的構造函數ReadInput,像這樣:

class ReadInput { 
    // previous fields: size, inputArray, etc. 
    public ReadInput() { 
     // code for setting size and populating inputArray from the file 
    } 
    // other methods: getJobs, etc. 
} 

如果你這樣做,那麼你應該設置。您已通過ReadInput in = new ReadInput();行呼叫ReadInput的構造函數,因此該行應填充in的數據。

+0

我把你的代碼移動到一個零輸入構造函數的建議,但現在當我嘗試從類B打印數組我得到所有0作爲輸出 – Chalupa

+0

@Chalupa這是因爲你從來沒有'inputArray'填充'initializeArrays()'。我看到'inputArray = new int [size];'但你不用做任何事情。您可能還需要調用'in.getJobs()'以實際填充'inputArray'。 – Jashaszun

+0

我將它填充到R​​eadInput.getJobs() – Chalupa

0

在B的構造函數中,我沒有看到你打電話

in.initializeArrays

setinputArray(INT [] inputArray)

在獲取大小之前在任何地方實際設置陣列。