Javaのコンストラクタとは?役割と使い方を実例付きで解説
コンストラクタとは
コンストラクタはメソッドに似た仕組みで、クラスのオブジェクトが生成されるタイミングで自動的に呼び出されます。主な用途は、クラスのインスタンス変数を初期化することです。
コンストラクタには以下のような特徴があります。
- クラス名と同じ名前を持つ
- 戻り値の型を持たない(voidも指定しない)
- newキーワードによるオブジェクト生成時に自動的に実行される
コンストラクタの種類
Javaのコンストラクタには、大きく分けて次の2種類があります。
- 引数なしコンストラクタ:引数を受け取らず、固定値などでフィールドを初期化します。
- 引数付きコンストラクタ:呼び出し側から渡された値を使って、柔軟にフィールドを初期化します。
いずれの場合も、コンストラクタの主目的はクラスのインスタンス変数を初期化することです。
例1:引数なしコンストラクタで初期化する
次の例では、引数なしコンストラクタを使ってクラスのインスタンス変数を初期化しています。
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
このように、new Test() でオブジェクトを生成した瞬間にコンストラクタが実行され、num と data に値が設定されていることがわかります。
例2:引数付きコンストラクタで初期化する
次の例では、引数付きコンストラクタを使って、ユーザーが入力した値でインスタンス変数を初期化しています。コンストラクタ内では this キーワードを使うことで、フィールドと引数を区別しています。
import java.util.Scanner;
public class Test {
int num;
String data;
Test(int num, String data){
this.num = num;
this.data = data;
}
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("文字列を入力してください: ");
String data = sc.nextLine();
System.out.println("整数を入力してください: ");
int num = sc.nextInt();
Test obj = new Test(num, data);
System.out.println(obj.num);
System.out.println(obj.data);
}
}
実行結果
文字列を入力してください: sample 整数を入力してください: 1023 1023 sample
まとめ
コンストラクタは、オブジェクト生成時に自動的に呼び出され、インスタンス変数の初期化を担う重要な要素です。引数なし・引数付きの2種類があり、状況に応じて使い分けることで、安全かつ柔軟なオブジェクトの初期化が可能になります。
-
データ分析とは?基本の流れと目的別におすすめのツールを徹底解説
データ分析と聞くと、多くの人がMicrosoft Excelでデータを操作・集計するイメージを思い浮かべるかもしれません。しかし実際には、データ分析は単一のツールにとどまらず、多様なツールや手法を駆使して、データが語る「物語」を読み解く幅広い活動を指します。 では、データ分析とは何でしょうか。ビジネスデータ、製造データ、マーケティングデータなど、扱う対象によってその活用方法は大きく異なります。自社の業種や業務に特化したデータの分析も求められます。 本記事では、データ分析の各側面、それぞれの意味、そして一般的な活用方法について詳しく解説します。 データ収集 あらゆるデータ分析の出発点
-
JavaのsetBounds()メソッドとは?使い方とサンプルコードを解説
JavaのGUIプログラミングでは、レイアウトマネージャー(Layout Manager)がコンポーネントの位置やサイズを自動的に決定します。しかし、レイアウトマネージャーを使用しない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。そのような場面で活躍するのがsetBounds()メソッドです。フレームのレイアウトマネージャーをnullに設定することで、コンポーネントの位置とサイズを自由に指定できるようになります。setBounds()メソッドの基本setBounds()メソッドは4つの引数を取ります。第1引数と第2引数はコンポーネントの左上隅のx座標・y座標、第3引数はコ