カンニングシート4:参照型変数と配列
試験前にさっくり読み返したら多分点数取れる!…はず。
●newでインスタンス生成
インスタンスを利用するためには参照型変数に代入する。
参照変数に代入せず、直接利用することもできる。
●連結、比較
・+での文字列連結時のtoString()が自動発動する条件は左右どちらかが文字列の場合のみ。
・参照型同士の比較(==、equals)はアドレス比較。データそのものの比較ではない。
但し、Stringクラスのequalsメソッドはオーバーライドされているため、
アドレスではなくデータそのものが比較される。
●Stringクラス
・newは常に新しいインスタンスを作成。
・=代入は文字列リテラルを専用のメモリ領域に格納。
同じ文字列リテラルなら、別インスタンスとならない(同じアドレスが格納。)
メモリ効率は=代入のほうがよい。
●配列
・[]は変数名の前後どちらでも良い(int []a; int[] a;)
int [] a, b;でa、bどちらも配列化。
・newで作成。配列数は配列作成時から変更不可能。作成した時点で初期値が設定される。(メンバ変数の初期値同様)
●二次元配列
・int a[][]; int []a[]; int [][]a; int[] a[];
●ジャギー配列
・int a[][] = {{1}, {1,2}}
●参照型の暗黙の型変換
・配列→クラス
・変換は可能。但し、明示的なキャストが必要。
int a = {1}; Object b = (int[])a;
・クラス→インターフェイス
・継承元への変換は可能???
●列挙型
・メソッド内で定義不可。
・オブジェクトを継承していると考えて良い。メソッドを保持。compareTo、values、valueOf等。
通常のクラスと同様の使い方が可能。
・enumを定義する際にカンマ、セミコロンで終了するのはOK。
enum{a,b,c; }はOK。enum{a,b,c, }はOK。
●メソッド引数
・基本データ型と参照型の違いに注意
●可変長引数
・XXX(String… args)
複数可変長は定義できない。(不定になる)
改変長は最後に定義しないとコンパイルエラー(不定になる)
徹底攻略Oracle認定JavaプログラマSE 5/6教科書 (ITプロ/ITエンジニアのための徹底攻略)
徹底攻略Oracle認定JavaプログラマSE 6問題集 [CX-310-065]対応 (ITプロ/ITエンジニアのための徹底攻略)