2

私はJavaの初心者で、インターフェースを実装しようとしています。

だからメインクラス

public interface Matrix{
    //returns number of rows
    int numRows();
    //returns number of columns
    int numColumns();

    int addRows(...);
    ....
}

今、基本的に私が解決しようとしているのは..私は2つの行列を持ってmatrixaおりmatrixb、タイプはMatrix.

基本的に行列を行ごとに拡張したいと思います。したがって、matrixa10行あり、matrixb2行ある場合。そしたら帰りたいmatrixa+=matrixb

(もちろん、列数が同じであると仮定します。)

これを行う正しい方法は何ですか?

4

5 に答える 5

0

インターフェイスを実装するには、インターフェイスとそのすべてのメソッドを実装するクラスを作成します。

public class MatrixImpl implements Matrix{

    private List<List<Integer>> elements = new ArrayList<List<Integer>>();
    private int rowSize;

    ...

    /** appends rows from provided matrix to this matrix */
    public Matrix addRows(Matrix b){
        List<List<Integer>> rows;
        if (b == this){
            rows = new ArrayList(b.elements);
        }else {
            rows = b.elements;
        }
        for (List<Integer> row : rows){
           if(row.size() == rowSize){
              elements.add(new ArrayList(row));
           }else{
              // do some error handling
           }
        }
        return this;// you may want to return a clone instead
    }

    ...

}
于 2013-01-03T20:36:41.020 に答える