図Proo2_1_㏛cは「コンストラクタ--引数の扱い方」を説明するためのプログラム例である。このプログラムの最後にコメントで実行結果が示されている。このプログラムにはBookとProo2_1のクラスがある。Bookクラスにはdisplay()以外に二つのメソッドがある。どちらもBookという名前であるが、一方は引数がなくもう片方は二つの引数がある。これらは特殊なメソッドでコンストラクタと呼ばれる。コンストラクタの名前はクラス名と同じである。コンストラクタには戻り値がない。従って、Bookの前にはintなどの修飾子が付いていない。17,19,21行ではコンストラクタが呼ばれている。コンストラクタを呼ぶ場合、引数の数、型、その順番が一致しているコンストラクタが呼ばれる。引数が一致している場合(17,19行)、9から13行で定義されているコンストラクタが呼ばれる。引数がない場合(21行)、8行で定義されているコンストラクタが呼ばれる。
コンストラクタの働きはオブジェクトを作ることである。引数があってもなくて、オブジェクトのフィールドは何らかの形で初期化される。多くの場合引数で初期化される。
コンストラクタの引数は一般にオブジェクトのフィールドを初期化するためのデータであることが多い。例の場合、本のタイトルとページ数が引数として与えられている。19行のようにフィールドデータとして適切でない値(-300)が与えられた場合など、警告のメッセージを出すことができる。以下にソースを張り付けます。
/*コンストラクタ1*/ class Book { String title; int page_suu; void display(){ System.out.println("title="+title+", page_suu="+page_suu); } Book(){title="Java 入門"; page_suu=200;} Book(String a, int b){ title=a; if(b<0) System.out.println("ページ数がマイナスです"); page_suu=b; } } class Proo2_1{ public static void main(String[] args){ Book a=new Book("Introduction to Java",500); a.display(); Book b=new Book("Introduction to C",-300); b.display(); Book c=new Book(); c.display(); } } /* title=Introduction to Java, page_suu=500 ページ数がマイナスです title=Introduction to C, page_suu=-300 title=Java 入門, page_suu=200 */