間違え問題が多かったので復習がてらアウトプットします。
キャスト
プリミティブな型で大きい型から小さい型の変数に代入する際はキャスト(型変換)を行う必要がある。
反対に小さい型から大きい型への代入はキャストが必要ない
これを暗黙型変換という。
参照型の場合も型変換のルールがあり
キャストを行うクラス間で継承関係にあるかインターフェースの実装関係にないと
例外エラーになる。
スーパークラス型で宣言された変数にサブクラス型のオブジェクトは代入できる
(暗黙型変換)
これはサブクラスのオブジェクト内でスーパークラスの部分だけの振る舞いを
行ってくれます。
※オーバーライドしたメソッドはオブジェクトに合わせて振る舞いを変えます。
反対にサブクラスの型で宣言した変数にスーパークラス型のオブジェクトを
代入できません。
これは代入したスーパークラスをサブクラスまで広げますという明示をしなくてはならない
キャストがないとスーパークラスをどこまで拡張すればよいか不明になる。
関係演算子
「>」 「>=」 「<」 「<=」
の演算子は数値の大小を比較するものなので
数値以外の比較に使用するとエラーになる。
switch文
breakを指定しないと最初に評価された式からbreakに当たるまで
すべての式が処理される。
case文にcase値というルールがあり
case値にできるものはfinalな数値(定数)やリテラルのみです
case num; //変数なのでエラー
case "10"; //リテラルの表記ミス””は不要なのでエラー
三項演算子
書式
条件式 ? 処理A : 処理B
条件式がtrueであれば処理Aを行う
条件式がfalseであれば処理Bを行う
0コメント