コンストラクタ・デストラクタ |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
コンストラクタ・デストラクタ
インスタンスの生成時と廃棄時に自動的に実行される特殊なメソッド。
生成時にコンストラクタが、廃棄時にデストラクタが実行される。
それぞれに実行したい処理を書いておけば自動実行される。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
|
コンストラクタとデストラクタ |
|
|
インスタンスで自動実行される特殊なメソッド |
|
名称 |
実行
タイミング |
内容 |
コンストラクタ |
インスタンス
生成時 |
インスタンスの初期化に使う。
インスタンスの生成時に必ずすることを書く。
例:自動車の燃料を「10」入れる |
デストラクタ |
インスタンス
廃棄時 |
インスタンスの廃棄時の終了処理に使う。
インスタンスの廃棄時に必ずすることを書く。
例:自動車の燃料を「0」にする |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
コンストラクタ
コンストラクタに書いた内容はインスタンスを
作った時に自動実行される。
値を渡すようにもできるので
インスタンスごとの初期設定をするのにも便利。
コンストラクタはconstructor。意味は「建築者」。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
自動車の例で例えると・・・
自動車の場合、作った自動車をお客さんに届ける前に
しなければいけないことがいろいろある。
今まではインスタンスを生成した後に手動で設定をやっていた。
(自動車を作った後に車体の色とか、燃料とか入れていた。)
これは、買った人によって違う内容になることも多い。
そこでコンストラクタを使って、車を作った時に
必ず最初にしなきゃいけない決まりを書いておく。
自動で実行されるので、設定をやり忘れることがなくなって安心。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
デストラクタ
コンストラクタとは逆に、インスタンスの廃棄時に実行される。
インスタンスを廃棄つまり、削除する時にする処理を書いておけば、
廃棄時に自動的にやってくれる。
自動車の場合なら・・・
廃車にする時に必ずすることを書いておけばやり忘れることが無くなる。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
インスタンスのフィールドの初期化の方法
2つの方法がある。
・フィールドの初期値
・コンストラクタ
実行するタイミングで、いろいろ使い分けができる。
例えば、
コンストラクタは、インスタンスを作った直後に
実行されるので、フィールドの初期値を上書きできる。
今後使い方を見ていきます。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
 |
|
|
フィールドの初期化の方法 |
|
方法 |
インスタンス
生成時の
実行順番 |
使い分けの例 |
フィールドの
初期値
(クラスに
最初から
書き込んで
おく値) |
1 |
クラスのフィールドに直接、値を書いておく方法。
(例:上図のフィールド[燃料量]を「0」に設定)
インスタンス化時、全てのインスタンスに
値が適用される。
用途:
全てのインスタンスのデフォルト値、など。 |
コンストラクタ |
2 |
コンストラクタからフィールドに値を書き込む方法。
(例:上図のフィールド[燃料量]を「10」に設定)
インスタンス生成直後に実行されるため
個別の値を渡して、フィールドの初期値を
上書きして再設定できる。
用途:
インスタンス個別の設定が必要な場合、など。 |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今回は「概要」だけです。
どんなものか概念を知って下さい。
詳しいことは今度プログラムを
作りながら学習していきます。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|