Java Bronze学習にあたり、よく間違える箇所のまとめ。
インターフェース
・フィールドは定数のみ
フィールドは全て、final staticで暗黙的に修飾される。(修飾子は省略可能)
staticでフィールドを修飾することができる
(※staticで定義された値はインスタンスを作成しなくても実行できるため)
・メソッドは全て、public abstractで暗黙的に修飾される
staticでメソッドを修飾することはできない。
(※staticメソッドはインスタンスを作らなくても実行できてしまうため、抽象的なメソッドを修飾することはできない)
staticメソッド
staticメソッドから、自クラスに定義されたインスタンスフィールドにアクセスすることはできない。
→コンパイルエラー発生!
staticメソッドはインスタンスを作らなくても実行できる。
インスタンス作成前にstaticメソッドからインスタンスフィールドにアクセスしてしまうのを防ぐためにコンパイルエラーが発生する。
ダウンキャスト
親クラスのインスタンスを、子クラスの型に代入すること。
キャスト演算子を使うことで、強制的な型変換が可能になる。
コンパイルエラーは起こらない。
ただし!
実際に代入しようとした瞬間、例外が発生(ClassCastException)
アップキャスト
子クラスのインスタンスを、親クラスの型に代入すること。
親クラスにあって、子クラスに無いメソッドを実行するとコンパイルエラーになる。
シグニチャ
・メソッド名
・引数の数
・引数の型
・引数の順番
のこと
変数の初期値
変数は、生成されるときに初期値(default value)で初期化される。
・byte型 0
・short型 0
・int型 0
・long型 0L
・float型 0.0f
・double型 0.0d
・char型 '\u0000'
・boolean型 false
・参照型 null