Javaのお勉強その5
- フィールド
static宣言されたフィールドはクラス変数であり、オブジェクトを生成せずに利用できる。staticがついていないフィールドはオブジェクトに付随する。
クラス変数は、インスタンス変数よりも先に初期化される。初期値を指定しないと、デフォルトの初期値が与えられる。0(型によっては0.0などになる)やfalseが与えられる。メソッド内の一時変数は初期化されない。
finalがついたら、コンストラクタが終了するまでに初期化しなければならない。
- コンストラクタ
同じクラスのコンストラクタはthis()で、スーパークラスのコンストラクタはsuper()で呼び出せる。
クラス定義時にコンストラクタを書かないと、引数なしのコンストラクタがコンパイラによって自動的につけられる。引数をとるコンストラクタを書くと、デフォルトコンストラクタは自動的につかなくなる。引数をとらないコンストラクタが必要なのであれば、プログラマが書く必要がある。
super()が明示的に呼び出されない場合、最初にsuper()が実行される。したがって、スーパークラスには引数をとらないコンストラクタを書くか、何も書かないでおく必要がある。
- メソッド
インスタンスメソッドを変数.メソッドのように呼び出すと、変数が実際に参照するオブジェクトの型のメソッドが呼び出される。クラスメソッドの場合は、変数の型のメソッドが呼び出される。
- オーバーロード
同じ名前で、仮引数の並びが異なるメソッドを1つのクラス内で宣言すること
- オーバーライド
スーパークラスと同じシグネチャ(メソッド名と仮引数の並び)を持ち、戻り値型が同じ化そのサブタイプであるものを定義すること。
staticメソッドをオーバーライドして、インスタンスメソッドにすることはできない。
privateメソッドをオーバーライドするつもりでメソッドを定義しても、サブクラスからは参照できないので、スーパークラスのものとは無関係のメソッドになる。
final宣言されたメソッドはオーバーライドできない。
0 件のコメント:
コメントを投稿