实验目的:
封装一类矩阵对象,该类对象具有
初始化矩阵的功能、修改矩阵元素的功能
实验代码:
package cn.Xu;
public class JuZhen {
public int hang;
public int lie;
public int a[][] = new int[hang][lie];
public JuZhen() {
hang = 0;
lie = 0;
a = new int [hang][lie];
for (int i = 0; i < hang; ++i) {
for (int j = 0; j < lie; ++j) {
a[i][j] = 0;
}
}
} //构造函数
public void set_hang(int hang) {
this.hang = hang;
}
public void set_lie(int lie) {
this.lie = lie;
}
public int get_hang() {
return hang;
}
public int get_lie() {
return lie;
} //getter和setter函数
public void zhiZhi() {
a = new int[hang][lie];
for (int i = 0; i < hang; ++i) {
for (int j = 0; j < lie; ++j) {
a[i][j] = 1;
}
}
}
public void change(int i, int j, int zhi) {
a[i][j] = zhi;
}
public void display() {
for (int i = 0; i < hang; ++i) {
for (int j = 0; j < lie; ++j) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
} //功能函数 为矩阵数据设置处置 修改矩阵中元素的值 显式矩阵
}
package cn.Xu;
public class Test_JuZhen {
public static void main(String[] args) {
JuZhen juzhen = new JuZhen();
juzhen.set_hang(4);
juzhen.set_lie(4);
juzhen.zhiZhi();
juzhen.display();
System.out.println();
juzhen.change(1, 1, 2);
juzhen.display();
}
}
实验结果:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 2 1 1
1 1 1 1
1 1 1 1
实验心得:
说实话,过程并不是太一帆风顺,问题集中出现在二维数组上,也不知道是怎么了,是以前练习的少了吗,还是其他的什么原因,应该不会因为定义方式的不同而被绊住的啊,可是却又真的偏偏出问题了,开始时,没有设置置值的函数,结果那,在修改数组中元素的函数中动态开辟空间,也没有设置初值,直接对元素进行修改,数组会默认的全部为0,修改的功能也不能得以实现,之后为了条理更清晰,增加了设置初值的函数,又在在哪个函数中开辟数组空间的问题上费了一些时间,置值的函数中开辟空间,再在修改元素的函数中开辟数组空间,结果就是初值全部改为0,虽然是可以更改数组中数据的。综上所述,其实问题就在于开辟空间上,其实现在想想是很自然的事情,先止初值,之后修改元素,最后显式,在最初置初值的函数中开辟空间是很理所应当的,之后再次开辟空间,自然会被默认为0值了。所以,还是老问题,多多注意细节和逻辑就可以了。