ヤマムギ

growing hard days.

*

Java SE 7 Silver対策勉強をしながらメモ 2015/2/4

      2015/03/29


本日は継承をどっぷりと。

一気に詰め込んで正解だったかも。

いつものごとくマークダウンで記載したのでそのままJetpack Markdownにお任せでアップします。

継承元に引数なしのコンストラクタがなくてもsuper()の生成を抑制すればよい

  • this(5)を追加する事でsuper(i)でSuperClassがインスタンス化出来るのでコンパイルによるsuper()の生成が抑制出来る

インターフェースも継承だから実装時にはゆるいアクセス修飾子でないとならないってことはpublicのみ

  • インターフェースでメソッドは修飾子を省略しても暗黙的に public abstractメソッドになる。
  • メソッドにpublic abstract以外のfinal static private protectedは指定出来ない
  • 変数はpublic static finalになる

クラスのキャスト

  • f1変数はLectureHall型のオブジェクトを参照しているので実行時にClassCastException例外が発生

ポリモフィズムを実現するには引数の型をインターフェースかスーパークラスにする

ポリモフィズムはstaticメソッドには適用されず、変数宣言時のクラス側のメソッドが呼び出される

– 出力は「Gurr! Gurr! Moo!」

ポリモフィズムが非staticメソッドで適用される例

– 出力は「Gurr! Moo! Moo!」

System.arraycopy()

  • System.arraycopy(①,②,③,④,⑤);
    ①コピー元配列名
    ②コピー元開始添え字
    ③コピー先配列名
    ④コピー先開始添え字
    ⑤コピーする要素数
  • コピー先の要素は置き換えられる

java.lang.Longはpublic final class Long というかラッパークラスはだいたいfinal

getClass()の戻り値は参照しているオブジェクトのクラス名(宣言ではない!)

  • empもManagerクラスを参照しているので、出力は「class Managerclass Manager」となる

先にキャストしてメソッドを実行する

  • Aは戻り値をTruth型にキャストしようとしているがSpeakクラスにはtell()メソッドがないのでコンパイルエラー
  • Bはそもそもtell()メソッドの戻り値はvoid型なのでTruth型にはキャストできないのでコンパイルエラー

参照変数のキャストは実行時に行われる!(コンパイル時にはエラーは検知できない!)

staticメソッドはsuper.メソッドでは呼び出せない

コンストラクタ内で自クラスの引数なしコンストラクタを呼び出すときはthis();を使う!!

抽象クラスは具象クラスを継承する事が出来る!!!

インターフェースのimplementsは「実装」(「継承」ではない)!!!

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - Java, study , ,

ad

ad

  関連記事

AWS Summit 2016 Tokyoに参加してきました (Day2)

馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …

EC-CUBE3.0 コードリーディング勉強会第1回目に行ってきました

EC-CUBE3.0 コードリーディング勉強会第1回目に行ってきました。 ECサ …

「実践AWSプログラミング in Osaka」に行ってきました

クラスメソッドさんの「実践AWSプログラミング in Osaka」に行ってきまし …

MonotaRO TechTalk #4「データ分析」に行ってきました

本日の一杯目。MonotaRO TechTalk #4「データ分析」もちろん呑み …

実録 JAWS DAYS 2016 ~スタッフ,RoadTrip,懇親会LTで参加しまして~

2016/3/12 参加してまいりましたJAWSDAYS2016 スタッフとして …

「JP_Stripes in Osaka Vol.2」でハンズオンをやりました

JP_Stripes大阪、早くも2回目の開催です。 自分が使ってみたいという目的 …

「GCPUG Tokyo Container Builder Day February 2018」に行ってきました

GCPUGは神戸以来の2回目で参加させていただきました。 申し込もうかと思ったら …

Pepper 開発 ワークショップ初級~中級~番外編に1日で一気に参加した

Pepperの開発方法が知りたかったので、Pepperアトリエ秋葉原 with …

「SIerIoTLT vol9@サポーターズ 」でLTしました〜

サポーターズさんで開催されたSIerIoTLT vol9でLTしてきました。 今 …

Linux Mint 17 MATE 64bit にJDKを入れなおしてEclipseをインストールする

Linux Mint 17のJDKを入れなおす ソフトウェア・パッケージを最新に …