|
第10回 クラスの機能(2) |
| 参考書 Lesson 9.4(参考書p.278)〜 Lesson 9.5 |
| 9 クラスの機能(つづき) |
| 9.4 コンストラクタをオーバーロードする(参考書 p.278) |
| ・コンストラクタをオーバーロードする - コンストラクタをオーバーロードすることができる - 引数の変数の型・個数が違うものにする <コンストラクタをオーバーロードした例>
・別のコンストラクタを呼び出す - あるコンストラクタから、別のコンストラクタを呼び出す - 記述の無駄を省くことができる - 他のコンストラクタは this(); で呼び出す(引数によって区別する) ・コンストラクタを省略すると? - 自動的にデフォルトコンストラクタ(引数なしのコンストラクタ)が用意され、呼ばれる ・コンストラクタに修飾子をつける - コンストラクタにアクセス制限を設定して、オブジェクトの作成方法をコントロールする - 例えば、デフォルトコンストラクタの利用を禁止する、引数有りコンストラクタの利用を必須にする、など <コンストラクタにprivateをつける>
|
| 9.5 クラス変数、クラスメソッド |
| ・インスタンス変数のしくみを知る - これまで利用してきた変数・メソッドは「インスタンス変数」、「インスタンスメソッド」と呼ぶ - オブジェクト(インスタンス)が新規に作成されるたびに、新しく独立した領域が確保される - 「インスタンス変数」、「インスタンスメソッド」はオブジェクト(インスタンス)に紐づけされる ・クラス変数とクラスメソッド - クラスに紐づけされている変数・メソッドを「クラス変数」、「クラスメソッド」と呼ぶ - クラス変数・メソッドの宣言は、頭に staticを追加する <クラス変数の例>
<クラスメソッドの例>
- クラス変数は、各インスタンスから共通でアクセスできる変数 下記のようにクラス変数、インスタンス変数を宣言した場合、下図のようなイメージになる
- car1、 car2、 car3 から sumにアクセスできる ![]() ・クラス変数、クラスメソッドの呼び出し方法 - クラス名を介してアクセスする
・クラスメソッドについての注意 - 「this.」は自分自身(インスタンス)を示すキーワード ただし、クラスメソッド内では「this.」は使えない --> どのインスタンスかを特定できないため - クラスメソッド内では インスタンス変数 にアクセスできない --> どのインスタンスかを特定できないため <(1)クラスメソッドの中で「this.」は使えない>
<(2)クラスメソッドの中でインスタンス変数にアクセスできない>
|
| 演習 |