Javaでデフォルトコンストラクタを作成する方法をわかりやすく解説
デフォルトコンストラクタ(引数なしコンストラクタ)とは
引数なしのコンストラクタ(No-arg constructor)は、パラメータを一切受け取らず、クラスのフィールドをそれぞれのデフォルト値で初期化します。具体的には、オブジェクト型には null、float 型と double 型には 0.0、boolean 型には false、byte・short・int・long 型には 0 が設定されます。
なお、コンストラクタを明示的に呼び出す必要はありません。オブジェクトが生成される(インスタンス化される)タイミングで自動的に呼び出されます。
コンストラクタを定義する際のルール
コンストラクタを定義するときは、以下のポイントに注意しましょう。
- コンストラクタには戻り値の型が存在しません。
- コンストラクタの名前は、必ずクラス名と同じにします。
- コンストラクタに
abstract、final、static、synchronizedを指定することはできません。 - アクセス修飾子としては、
public、protected、privateを使用できます。
例1:暗黙的なデフォルトコンストラクタ
コンストラクタを明示的に定義しない場合でも、Javaコンパイラが自動的にデフォルトコンストラクタを提供します。次の例では、int 型のフィールドがデフォルト値の 0 で初期化されます。
class NumberValue {
private int num;
public void display() {
System.out.println("The number is: " + num);
}
}
public class Demo {
public static void main(String[] args) {
NumberValue obj = new NumberValue();
obj.display();
}
}実行結果
The number is: 0
例2:明示的に定義したデフォルトコンストラクタ
自分で引数なしのコンストラクタを定義すれば、初期値を自由に設定できます。次の例では、final フィールドに対してコンストラクタ内で値を代入しています。
public class Student {
public final String name;
public final int age;
public Student(){
this.name = "Raju";
this.age = 20;
}
public void display(){
System.out.println("Name of the Student: "+this.name );
System.out.println("Age of the Student: "+this.age );
}
public static void main(String args[]) {
new Student().display();
}
}実行結果
Name of the Student: Raju Age of the Student: 20
このように、デフォルトコンストラクタを使うことで、オブジェクト生成時に一貫した初期状態を保証できます。特に final フィールドを持つクラスでは、コンストラクタでの初期化が必須となるため、実務でも重要な概念です。
-
Java 9でHTML5準拠のJavadocドキュメントを生成する方法
Java 9より前のバージョンでは、特定のパッケージ、クラス、インターフェース、メソッドに関する情報を調べるには、Googleなどの検索エンジンを使って探す必要がありました。しかしJava 9からは、Javadoc自体に検索機能が組み込まれ、生成されるAPIドキュメントの出力もHTML5標準に準拠するようになりました。 この記事では、実際にサンプルを作成しながら、Java 9でHTML5準拠のJavadocを生成する手順を解説します。 サンプルファイルの作成 まず、「C:/JAVA」フォルダ内に「JavaDocTest.java」というファイルを作成します。コードには、Javadocコメントと
-
Javaでパッケージをコンパイルする方法をわかりやすく解説
Javaパッケージの作成とコンパイルの基本手順ここでは、「animals」という名前のパッケージを作成する例を通して、Javaにおけるパッケージのコンパイル方法を解説します。なお、パッケージ名はクラス名やインターフェース名との名前の衝突(競合)を避けるため、すべて小文字で命名するのがJavaの一般的な慣習です。1. パッケージ内にインターフェースを定義するまず、animalsパッケージに属する「Animal」というインターフェースを定義します。/* ファイル名 : Animal.java */ package animals; interface Animal { &n