gpt4 book ai didi

java - 使用继承定义 nxn 矩阵

转载 作者:行者123 更新时间:2023-12-02 11:16:40 25 4
gpt4 key购买 nike

我已经为 nxn 矩阵编写了一个类(我已经在处理过程中编写了这个类,但我希望这个想法仍然清晰)

class Matrix {
float[][] entries;

Matrix(int n_) {

n = n_;
entries = new float[n][n];
}

float[][] getEntries() {
return entries;
}

void setEntries(float[][] k) {
entries = k;
}
}

但现在想推广 nxm 矩阵,但想保留已经为 nxn 矩阵编写的代码,而不改变它,我有编写一个新类 Gmatrix 的想法:

class Gmatrix {
float[][] entries;
int row;
int col;

Gmatrix(int row_, int col_) {
row = row_;
col = col_;
entries = new float[row][col];
}

float[][] getEntries() {
return entries;
}

void setEntries(float[][] k) {
// entries = k;

}
}

但我基本上只是想在 Matrix 类中编写像 row=n, col=n 这样的东西,我怎样才能完成这个?

最佳答案

您可以有一个更通用的类型来接受两个参数。这是一个更简单的示例:

class RectangularMatrix{
int rows;
int columns;

public RectangularMatrix(int rows, int columns){
this.rows = rows;
this.columns = columns;
}

public void printRowsAndColumns(){
println(rows + ", " + columns);
}
}

然后是一个更具体的类型,它扩展了此类并仅接受一个参数:

class SquareMatrix extends RectangularMatrix{
public SquareMatrix(int length){
super(length, length);
}

public void onlyApplicableToSquareMatrix(){
// put code specific to SquareMatrix here
}
}

然后,您可以在之前可以使用 RectangleMatrix 的任何地方使用 SquareMatrix。无耻的 self 推销:here是关于继承的教程。

但老实说,我没有看到更具体的类型有太多值(value)。只需使用通用类型并传入正确的参数即可。

关于java - 使用继承定义 nxn 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50222916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com