Javaの第5週の実験報告4

2018 ワード

実験の目的:
マトリックスオブジェクトのクラスを実装します。このクラスのオブジェクトは、初期化マトリクスの機能、マトリックス要素の変更機能を持っています。
 
実験コード:
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値が黙認されます。だから、まだ古い問題です。細かいところと論理に気をつければいいです。