设计一个矩阵类,其中,封装有一个数组,含求所有元素和的方法。另有一个方阵类,继承矩阵类,构造时要求数据的行、列相同,并提供求主对角线元素和的方法,用随机数构建6x6方阵,输出方阵,并求所有元素和、主对角线元素和。
时间: 2024-10-18 13:17:23 浏览: 34
C++实现的非常好的一个矩阵类
4星 · 用户满意度95%
首先,我们可以定义一个`Matrix`类,包含一个二维数组以及一个计算所有元素和的方法。接着,我们创建一个`SquareMatrix`类,它继承自`Matrix`,并添加一个用于计算主对角线元素和的方法。最后,我们将使用`Random`类生成一个6x6的方阵,并打印矩阵及其元素和、主对角线元素和。
```java
import java.util.Random;
class Matrix {
private int[][] elements;
public Matrix(int rows, int cols) {
this.elements = new int[rows][cols];
}
// 计算矩阵所有元素的和
public int sumAllElements() {
int sum = 0;
for (int[] row : elements) {
for (int element : row) {
sum += element;
}
}
return sum;
}
// 打印矩阵
void printMatrix() {
for (int i = 0; i < elements.length; i++) {
for (int j = 0; j < elements[i].length; j++) {
System.out.print(elements[i][j] + " ");
}
System.out.println();
}
}
}
class SquareMatrix extends Matrix {
public SquareMatrix(int size) {
super(size, size); // 确保行和列相等
}
// 计算主对角线元素的和
public int sumDiagonalElements() {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += elements[i][i]; // 主对角线元素
}
return sum;
}
}
public class Main {
public static void main(String[] args) {
int size = 6;
SquareMatrix squareMatrix = new SquareMatrix(size);
Random random = new Random();
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
squareMatrix.elements[i][j] = random.nextInt(100); // 生成0-99之间的随机整数
}
}
System.out.println("Matrix:");
squareMatrix.printMatrix();
int allElementsSum = squareMatrix.sumAllElements();
int diagonalElementsSum = squareMatrix.sumDiagonalElements();
System.out.println("\nSum of all elements: " + allElementsSum);
System.out.println("Sum of diagonal elements: " + diagonalElementsSum);
}
}
```
阅读全文