-インスタンスの生成と破棄-コンストラクタ通常はコンストラクタを利用してメンバ変数値を初期化する作業を行います。コンストラクタとは、クラスをインスタンス化する際に自動的に実行される特殊なメソッドのことです。[]は省略可能コンストラクタ名は、クラス名と必ず同じ名前にしなければなりません。コンストラクタには戻り値の型を指定することはできません。戻り値を指定すると通常のメソッドとして扱われることになります。戻り値がない場合に指定するvoidを付けることもできません。コンストラクタは、インスタンスの生成時に利用します。明示的にコンストラクタを指定していなくても自動的に呼び出される場合があります。コンストラクタの前にnew演算子を付けて、新しいインスタンスを生成します。[]は省略可能デフォルトコンストラクタクラス内に1つもコンストラクタを定義しない場合は、自動的に引数を1つも持たないコンストラクタが自動的に生成されます。このようなコンストラクタをデフォルトコンストラクタといいます。1つでも引数を持つコンストラクタを記述すると、そのクラスにはデフォルトコンストラクタは生成されません。コンストラクタのオーバーロードコンストラクタは通常のメソッド同様、1つのクラス内に複数定義することができます。通常のメソッド同様、コンストラクタの引数の型か引数の数、または、引数の型の並びが異なっている必要があります。thisキーワードの利用メソッド内にメンバ変数と同じ名前のローカル変数がある場合、ローカル変数が優先して利用されます。この時「this.変数名」と指定すると、インスタンス内のメンバ変数を指定することができます。同じクラス内のメソッドは、「this.メソッド名([引数の指定])」と記述することもできます。「this([引数の指定])」と記述した場合は、同じクラス内の他のコンストラクタを実行することができます。自分自身を呼び出すためにこれを利用することはできません。「this(引数の指定)」は、必ずコンストラクタの最初の文として記述しなければなりません。スーパークラスのコンストラクタを実行するための「super(引数の指定)」と同時に利用することはできません。コンストラクタは、通常のメソッドとは異なり継承が行われないため、スーパークラスで定義されたコンストラクタをオーバーライドすることはできません。スーパークラスのコンストラクタの自動実行あるクラスをインスタンス化する際、そのクラスのスーパークラスも自動的にインスタンス化されます。この時スーパークラスのコンストラクタは、インスタンス化するクラスのコンストラクタに先立って自動的の実行されます。ファイナライザとガベージコレクションコンストラクタがインスタンスの生成時に自動的に実行されるメソッドであるのと反対にファイナライザは、インスタンスの破棄時、すなわちメモリからそのインスタンスの領域が消去される直前に実行されるメソッドです。Throwable()ファイナライザはコンストラクタと異なり、通常のメソッドと同様に、他のクラスから明示的に呼び出すことができます。ファイナライザを呼び出しても、実際にインスタンスがいつ破棄されるかは予想できません。ガベージコレクションによって行われるからです。ガベージコレクションメモリを効率的に利用するために、ガベージコレクションが自動的に不要になったインスタンスをメモリから消去する作業を行います。