/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 姜雅明
* 完成日期: 2012 年 10 月 11 日
* 版 本 号: 2.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
/* 5.封装一类矩阵对象,该类对象具有初始化矩阵的功能、修改矩阵元素的功能。
*/
public class Matrix
{
private int row; //矩阵的行数
private int column; //矩阵的列数
private int [][] a;
Matrix(int row, int column)
{
this.row = row;
this.column = column;
a = new int [row][column]; //为矩阵开辟空间
int i = 0, j = 0;
for(i = 0; i < row; i++)
{
for(j = 0; j < column; j++)
{
a[i][j] = 1; //矩阵元素赋初值
}
}
}
public void display() //输出矩阵
{
int i = 0, j = 0;
for(i = 0; i < this.row; i++) //开始用的row,但是出错。在之前加入了a = new [row][column],这样,赋初值就无用了。
{
for(j = 0; j < this.column; j++)
{
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
public void change(int row, int column, int x) //修改矩阵元素
{
a[row][column] = x;
}
public void setRow(int row) //设置矩阵行数
{
this.row = row;
a = new int [row][column]; //重新开辟空间
}
public void setColumn(int column) //设置矩阵列数
{
this.column = column;
a = new int [row][column];
}
public int getRow() {
return row;
}
public int getColumn() {
return column;
}
public Matrix add(Matrix b) //矩阵相加
{
if(a.length == b.row && a[1].length == b.column)
{
Matrix c = new Matrix(b.row, b.column);
for(int i = 0; i < c.row; i++)
{
for(int j = 0; j < c.column; j++)
{
c.a[i][j] = a[i][j] + b.a[i][j];
}
}
return c;
}
else
{
System.out.println("sorry!!");
return b; //必须要返回,不知道应该怎么办了···
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Matrix m = new Matrix(2, 2);
m.setRow(3);
m.setColumn(3);
m.change(0, 0, 3);
m.display();
Matrix a = new Matrix(3,3);
Matrix b = new Matrix(3,3);
Matrix c = new Matrix(3,3);
a.change(1, 1, 2);
c = a.add(b);
c.display();
}
}
矩阵相加,不知道该怎么办了·····必须要返回,但是不能相加要返回什么呢,还是要用void类型?