2-2 クラス型変数

この記事は約2分で読めます。

今回はもう一つの型、クラス型について説明します。

クラス型は、その名の通りクラスが元になっている型のことです。Javaにはクラスが山ほどあるので、クラス型は沢山あります。

その中でも、今回は最もよく使われるString型を扱います。クラス型変数を宣言する方法はプリミティブ型の場合と同じです。

型名 変数名;

実際は宣言時に初期化する場合が多く、

型名 変数名=new 型名(コンストラクタ引数...);

と書きます。プリミティブ型変数は変数自体に値が記録されますが、クラス型変数の場合は「メモリ上の値が記録される場所」が記録されます。C言語のポインタのようなものです。ですから、クラス型変数を初期化するにはnewという演算子を使用し、クラス型に応じたメモリ領域を確保する必要があります(new演算子はC言語のmalloc関数に相当します。コンストラクタ引数には、クラス型変数を初期化するときに必要な情報を渡します。コンストラクタ引数がない場合もあります。コンストラクタについては、5章で説明します。

String型の場合はコンストラクタ引数に文字列を渡すと、その文字列で初期化されます。String型のみ、new演算子を使用しなくても直接文字列で初期化できます。

実行結果

s=
t=Hello
u=World

以下にプリミティブ型とクラス型の違いを示します。メソッドやジェネリクスについては後の章で説明します。

プリミティブ型クラス型
8種類のみ無数にある
自作できるか?不可能自作できる
頭文字アルファベット小文字アルファベット大文字が多い
メソッドの引数の参照数値渡し参照渡し
ジェネリクスの型引数使用できない(ラッパクラスを利用する)使用できる

コメント