Java配列境界問題のインスタンス解析
2666 ワード
Javaの配列初期化はOCと同じで、動的初期化と静的初期化に分けられます.
ダイナミック初期化ダイナミック初期化:長さを指定し、システムによって初期化値を与えます.
静的初期化:初期化値を与え、システムによって長さを与える
配列を使用するときに最も起こりやすいのは配列境界問題です
これは2 D配列です.配列が境界を越えていることが明らかです.コンソールには次の情報が印刷されます.
31行に正確に位置決めされています.
完全なコードの例を次に示します.
コンパイラは配列境界エラーを表示します.
チェックした結果、スクライブ部分の文にエラーが発生しました.
以下の修正を行う必要があります.
エラーの原因は、Company構築方法で配列Eが初期化されていないため、E配列サイズが0のまま配列境界エラーが発生したためです.
上記のエラー方式で作成したテストプログラムは以下の通りです.
出力結果は0です.すなわち、配列サイズはゼロです.
まとめ
以上がJava配列の境界問題の実例解析のすべてであり,皆さんの役に立つことを願っている.興味のある方は、引き続き当駅:Java異常終了条件の判断例コード、Javaプログラミング異常処理ベストプラクティス【推奨】などを参照してください.何か問題があったらいつでも伝言を残して、編集者はすぐにみんなに返事します.
ダイナミック初期化ダイナミック初期化:長さを指定し、システムによって初期化値を与えます.
静的初期化:初期化値を与え、システムによって長さを与える
配列を使用するときに最も起こりやすいのは配列境界問題です
int [][] array = {{1,2,3},{1,4}};
System.out.println(array[1][2]);
これは2 D配列です.配列が境界を越えていることが明らかです.コンソールには次の情報が印刷されます.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at demo.Array.main(Array.java:31)
31行に正確に位置決めされています.
完全なコードの例を次に示します.
package home_work_4_17;
abstract class Employee{
abstract double earnings();
}
class YearWorker extends Employee{
double earnings(){
System.out.println(" 1000");
return 1000;
}
}
class MonthWorker extends Employee{
double earnings(){
System.out.println(" 100");
return 100;
}
}
class WeekWorker extends Employee{
double earnings(){
System.out.println(" 10");
return 10;
}
}
class Company{
int n;
//
public Company(int n) {
this.n=n;
// TODO Auto-generated constructor stub
}
Employee E[]=new Employee[n];
double cal(){
//
double sum=0;
for (int j=0;j
コンパイラは配列境界エラーを表示します.
チェックした結果、スクライブ部分の文にエラーが発生しました.
以下の修正を行う必要があります.
class Company{
int n; //
Employee E[];
public Company(int n) {
this.n=n;// TODO Auto-generated constructor stub
E=new Employee[n];
}
double cal(){ //
double sum=0;
for(int j=0;j
エラーの原因は、Company構築方法で配列Eが初期化されていないため、E配列サイズが0のまま配列境界エラーが発生したためです.
上記のエラー方式で作成したテストプログラムは以下の通りです.
package test_a;
class people{
int n;
Student s[]=new Student[n];
public people(int n) {
this.n=n;// TODO Auto-generated constructor stub
}
}
class Student{
int number;
}
public class Cdcs {
public static void main(String args[]) {
people p=new people(3);
System.out.println(p.s.length);
}
}
出力結果は0です.すなわち、配列サイズはゼロです.
まとめ
以上がJava配列の境界問題の実例解析のすべてであり,皆さんの役に立つことを願っている.興味のある方は、引き続き当駅:Java異常終了条件の判断例コード、Javaプログラミング異常処理ベストプラクティス【推奨】などを参照してください.何か問題があったらいつでも伝言を残して、編集者はすぐにみんなに返事します.