Javaのコンストラクターとは?基本構文から実例までわかりやすく解説
Javaにおけるコンストラクター(constructor)は、記述方法こそメソッドに似ていますが、いくつかの重要な違いがあります。最大の特徴は、コンストラクター名がクラス名と同一である点と、戻り値の型を持たない点です。
コンストラクターは自分で呼び出す必要はありません。オブジェクトを生成(インスタンス化)する際に自動的に実行されます。主な役割は、クラスが持つインスタンス変数の初期化です。
コンストラクターの基本構文
コンストラクターは以下のように定義します。
class ClassName {
ClassName() {
// 初期化処理
}
}コンストラクター定義時のポイント
コンストラクターを記述する際には、次のルールを押さえておきましょう。
- 戻り値の型を持たない(void も指定しない)。
- 名前は必ずクラス名と同じにする。
- abstract、final、static、synchronized 修飾子は付けられない。
- アクセス修飾子として public、protected、private を指定できる。
サンプルコード
次の例では、コンストラクターの中でインスタンス変数 num と data を初期化しています。new によるオブジェクト生成時にコンストラクターが自動的に実行され、値が設定されているのが分かります。
public class Test {
int num;
String data;
Test(){
num = 100;
data = "sample";
}
public static void main(String args[]){
Test obj = new Test();
System.out.println(obj.num);
System.out.println(obj.data);
}
}実行結果
100 sample
補足:デフォルトコンストラクターについて
クラスにコンストラクターを1つも定義しなかった場合、Javaコンパイラーが自動的に「デフォルトコンストラクター」(引数なし・処理内容なし)を挿入します。このため、明示的に定義していなくても new クラス名() の形式でオブジェクトを生成できます。ただし、引数付きのコンストラクターを定義すると、デフォルトコンストラクターは自動生成されなくなるため注意が必要です。
-
Java 9における@Deprecatedアノテーションの改善点とは?新要素「since」「forRemoval」を徹底解説
@Deprecatedアノテーションとはクラス、メソッド、フィールドなど、プログラム内のあらゆる要素に付与できる@Deprecatedアノテーションは、「その要素はもはや使用すべきではない」ことを示すためのものです。要素が非推奨とされる主な理由は以下の通りです。使用すると危険であり、エラーを引き起こす可能性がある将来のバージョンで互換性がなくなる可能性がある将来のバージョンで削除される可能性があるより優れた、効率的な代替手段がすでに提供されているJava 9で追加された2つの新しい要素Java 9では、@DeprecatedアノテーションにsinceとforRemovalという2つの新しい属性
-
JavaにおけるCursorクラスの役割とは?マウスカーソル制御の基本を解説
JavaのCursorクラスとはCursorクラスは、Objectクラスのサブクラスであり、画面上のポイント(指し示す位置)やインジケーター(表示標識)として定義されます。ユーザーがマウスを使ってシステムへの入力を選択・操作する際に、その位置を視覚的に示す重要な役割を担っています。GUIアプリケーションでは、状況に応じてカーソルの形状を変えることで、ユーザーに対して直感的なフィードバックを提供できます。例えば、処理中であることを伝える砂時計型のカーソルや、クリック可能な要素を示す手型のカーソルなどが代表的な例です。利用可能なカーソルの種類Cursorクラスには、あらかじめ定義されたさまざまなカ