2010-07-24 50 views
5

我正在寫一個類來表示一個矩陣。我希望它看起來是這樣的:我可以在Java中重載變量嗎?

public class matrix { 
    private int[][] matrix; 
    private double[][] matrix; 
    //And so on and so forth so that the user can enter any primitive type and 
    //get a matrix of it 
} 

這是合法的代碼,否則我就必須有基於自己的矩陣保存數據類型不同的變量名稱?

+1

一些原因,爲什麼你不使用編譯器找出? – EJP 2010-07-25 00:13:03

回答

11

您不能重載變量。用你的方法,你應該給他們不同的名字,然後爲不同的類型重載getMatrix方法。

一個更好的辦法是使用Java的泛型:

public class Matrix<T> { 
    private T[][] matrix; 
    public T getMatrix() {return matrix;} 
    ... 
} 

,然後創建你想要的任何類型的對象:Matrix<Integer>Matrix<Double>

+0

謝謝,這使我無需製作一百萬種不同的構造函數和方法。另外,muy elegante! – 2010-07-24 21:22:57

1

我認爲你正在尋找Java泛型,因爲Java 5的

一個標準的Java功能的想法是,你將有可專門用於所需的任何類型的通用矩陣類。

有很多教程,例如:你有什麼表示here

+1

請發表評論,而不是回答。 – danben 2010-07-24 15:27:12

1

是不合法的Java代碼。你建議的方法(不同的名稱)可以工作,或者你可以利用Java的對象系統,並使用盒裝值(例如類成員只是一個對象)或泛型,例如類型是一個參數。

相關問題