编写程序题, 根据要求编写一个Java类,补充到代码中。 定义Matrix(矩阵)类,使用二维数组实现矩阵,实现两个矩阵的乘法。要求如下:
-
4个变量:row(行数),column(列数), matrix( int型二维数组),reader( Scanner对象)。
-
根据程序需求定义构造方法。
-
inputMatrix方法:从键盘读入一个矩阵,读入行数和列数,创建矩阵,然后读入元素值方法。
-
multiply方法:两个矩阵相乘,并返回乘积矩阵。
(两个矩阵的乘法:一个m×n的矩阵a(m,n)乘一个n×p的矩阵b(n,p),会得到一个m×p的矩阵c(m,p)。矩阵的行数和列数自定。)
public static Matrix inputMatrix(); //从键盘读入一个矩阵,并返回矩阵
Matrix multiply(Matrix mat); //两个矩阵相乘,并返回乘积矩阵。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Matrix firstMat=Matrix.inputMatrix();
Matrix secondMat=Matrix.inputMatrix();
//display(firstMat.matrix); display(secondMat.matrix);
Matrix productMat=firstMat.multiply(secondMat);
display(productMat.matrix);
}
//display方法:打印二维数组元素到屏幕
public static void display(int[][] array){
for(int i=0; i<array.length; i++){
for(int j=0; j<array[i].length; j++){
if(j==array[i].length-1) {
System.out.println(array[i][j]);
}
else {
System.out.print(array[i][j]+" ");
}
}
}
}
}
/* 请在这里填写答案 */
class Matrix
{
int row, column;
int[][] matrix;//int a[][];都可
static Scanner reader = new Scanner(System.in);//why
public static Matrix inputMatrix()//从键盘读入一个矩阵,并返回矩阵
{
int i, j;
Matrix a = new Matrix();
a.row = reader.nextInt();
a.column = reader.nextInt();
a.matrix = new int[a.row][a.column];//
for(i = 0 ; i < a.row; i ++)
{
for( j = 0 ; j < a.column ; j ++)
{
a.matrix[i][j] = reader.nextInt();
}
}
return a;
}
public Matrix multiply(Matrix mat) //两个矩阵相乘,并返回乘积矩阵。
{
int i, j, k;
Matrix c = new Matrix();
c.row = this.matrix.length;
c.column = mat.matrix[0].length;
c.matrix = new int[c.row][c.column];
for ( i = 0; i < c.row; i ++ )
{
for ( j = 0; j < c.column; j ++ )
{
for( k = 0; k < mat.matrix.length; k ++)
{
c.matrix[i][j] += this.matrix[i][k] * mat.matrix[k][j];
}
}
}
return c;
}
}
public Matrix multiply(Matrix mat) //两个矩阵相乘,并返回乘积矩阵。这里用public static就会答案错误
查阅资料知,
不加static修饰的成员是对象成员,归每个对象所有。
加static修饰的成员是类成员,可以由一个类直接调用,为所有对象共有。
但是还是不太明白
求大神指点
本文介绍如何在Java中创建一个Matrix类,利用二维数组实现矩阵,并实现两个矩阵的乘法功能。Matrix类包含row和column属性,以及用于输入矩阵数据的inputMatrix方法和计算矩阵乘法的multiply方法。对于矩阵乘法规则,一个m×n矩阵乘以一个n×p矩阵得到m×p矩阵。文章探讨了成员变量的static修饰符的区别,帮助理解对象成员和类成员的概念。
1336

被折叠的 条评论
为什么被折叠?



