クラスの詳細 つづき |
|
static(スタティック)とインスタンス化の違い |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
えー・・・???
インスタンス化しないで
メソッドとか使えちゃうなら
オブジェクトって
必要ないんじゃ・・・?
クラスの全部の項目を
staticにすれば
済んじゃうよね? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
うーん。
それは
全然違うんだな。
自動車クラスの例で
詳しく見てみよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
なにこれー
今までやったこと
ぜんぶひっくり
返されたみたい・・・ |
 |
|
 |
全然違うー
よく分からなくて
当然だけど。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
例えば、自動車の車体色。
通常のままだったら
生成したインスタンスは、
各自が車体色フィールド
を持つ。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
インスタンスごとに
フィールドを
持ってるからね。 |
|
|
|
 |
|
当たり前ー |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
これなら
それぞれの自動車で
色の設定ができるよね! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
実体は常に
クラスの1つだけ。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
それに対して
車体色フィールドを
staticにした場合。
この場合、車体色フィールドは
自動車クラスが持つ
クラスフィールド1つだけになる。
だから、インスタンスを
いくつ作っても
車体色フィールドは
全部のインスタンスで1つ。
クラス全ての共有のフィールドに
なるんだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
いくつインスタンスを
作っても、参照するのは
設計図のになるんだ。
みんなで1つに
なっちゃうんだ! |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
面白いね。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
まとめると。
インスタンスも必要ってこと。
インスタンスの場合、
いくらでも生成できて、
インスタンスごとに独立した
メンバを持てる。
staticの場合、1つしか作れない。
設計図は1つしかないからね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
なるほど。
staticとインスタンスは
全然別の話だったんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
クラスは
1つだけー |
 |
|
 |
そっか。 |
|
|