配列の変数の情報(A)と、
配列内容がはいってる場所(AAA)は別
変数には(AAA)の番地の情報が入っている
配列b = 配列a
にすると、bもaも「同じ番地を参照する」ことになる。
配列b[0]に100を代入してしまうと
a[0]も100になる変わった性質がjavaにはある。
基本データ型(プリミティブ型)p47
参照型(オブジェクト型)
配列変数
クラスが多変数(String)
javaは使わなくなった変数は自動的にごみしてくれる。
nullについて
--->Main158.java
package part1;
public class Main158 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int[] a= {1,2,3};
a= null;//どこも参照しませんよ
a[0]=10;
}
}
実行結果--->
Exception in thread "main" java.lang.NullPointerException
at part1.Main158.main(Main158.java:10)
ヌルポインターエクスセプション
はよく見るエラーらしい。
アレイインデックスアウトオブなんちゃら(配列の番地外の参照をしようとしている)と二大エラー。
nullが代入されると「どこも参照していない」状態になる。nullリセットとかとも言うらしい。
二次元配列
1こめが行(行・列だから)
2こめが列
0.0を起点に右下に広がっていくイメージ
行とは横に伸びた同じフロア
列とは下に伸びたいっこ下の階
行がふたつ→右に伸びたブロックが2つ→つまり2階建て
列がふたつ→下に伸びたブロックが2つ→つまりワンフロア2部屋
2行3列→2階建て3フロア
int[][] scores = new int[2][3]; →2階建て3フロア
--->Main163.java
package part1;
public class Main163 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int[][] scores = { {10,20,30},
{30,40,50}
};
System.out.println(scores.length);
System.out.println(scores[0].length);
}
}
--->Main163_2.java
package part1;
public class Main163_2 {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int[][] scores =
{ {10,20},
{30,40,50},
{60,70,80,90}
};
for (int i=0; i<3; i++) {
for(int j=0; j<2; j++) {
System.out.println("ただいまiは"+i);
System.out.println("ただいまjは"+j);
System.out.println(scores[i][j]);
}
}
//System.out.println(scores.length);
//System.out.println(scores[0].length);
}
}
--->実行結果
ただいまiは0
ただいまjは0
10
ただいまiは0
ただいまjは1
20
ただいまiは1
ただいまjは0
30
ただいまiは1
ただいまjは1
40
ただいまiは2
ただいまjは0
60
ただいまiは2
ただいまjは1
70