用java编写一个矩阵类,其中封装有一个数组,含求所有元素和的方法,另有一个方阵类,继承矩阵类,构造时要求数据的行、列相同,并提供求主对角线元素和的方法,用随机数构建6*6方阵,输出方阵,并求所有元素和、主对角线元素和
时间: 2024-10-13 08:13:09 浏览: 44
基于C++编写一个函数求一个4*4二维数组所有周边元素的和
首先,我们创建一个基础的矩阵类Matrix,它包含一个二维数组以及求和的方法:
```java
public class Matrix {
private int[][] data;
public Matrix(int rows, int cols) {
this.data = new int[rows][cols];
}
// 求矩阵所有元素之和
public int sumAllElements() {
int sum = 0;
for (int[] row : data) {
for (int element : row) {
sum += element;
}
}
return sum;
}
// 用于演示如何添加,这里不做实现
public void setElement(int row, int col, int value) {
data[row][col] = value;
}
}
```
然后,我们创建一个继承自Matrix的方阵类SquareMatrix,增加求主对角线元素和的方法:
```java
public 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 += data[i][i];
}
return sum;
}
}
```
现在我们可以用随机数构建一个6x6的方阵并打印结果:
```java
public static void main(String[] args) {
Random rand = new Random();
SquareMatrix squareMatrix = new SquareMatrix(6);
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
squareMatrix.setElement(i, j, rand.nextInt(100)); // 生成0到99之间的随机整数
}
}
System.out.println("Original Matrix:");
for (int[] row : squareMatrix.data) {
for (int element : row) {
System.out.print(element + "\t");
}
System.out.println();
}
// 输出所有元素和
int allElementsSum = squareMatrix.sumAllElements();
System.out.println("\nSum of all elements: " + allElementsSum);
// 输出主对角线元素和
int diagonalElementsSum = squareMatrix.sumDiagonalElements();
System.out.println("\nSum of diagonal elements: " + diagonalElementsSum);
}
```
阅读全文