忍者ブログ
淡々とお仕事のお勉強をするよ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Javaの道:インタフェース(3.インタフェースの実装(implements))まで。Java の単一継承の原則を回避するとともに、クラス間関係の縛りを考えなくて済むようにする、のかな。

  • 変数には public static final が、メソッドには public abstract が付いている。
  • インタフェース変数なんてのもある。インタフェースを実装したクラスオブジェクトを示す。
PR

Javaの道:パッケージ(3.パッケージの参照)まで読む。

Java 入門 | パッケージ

  • package パッケージ名; で宣言。
  • パッケージ名とファイルパスの対応に注意。

Javaの道:クラス(15.内部クラス)まで。これでクラス話は一段落。
インタフェースの話は以前過去ログに載せた何処かで見たけど読み飛ばした気がする。

あれ、抽象クラスにも静的メソッドを定義して使える ? これも書けば分かるか。

  • abstract が付くと抽象クラスに。インスタンスは作れない。サブクラスに継承させる。
  • 抽象メソッドを入れると必ず抽象クラスにせねばならない。継承した場合も同様。オーバーライドを忘れずに。
  • 配列はそういうクラスで作っている扱いじゃなかったのか…オブジェクトとクラスがごっちゃになっていることがバレる。
  • よく考えたら、多くのクラスが内部クラス・メソッド内の内部クラス ? あまりコードを書く上では (すぐには) 関係ないか。
  • メソッド内の内部クラスからは、final がついている場合のみ外部の変数を参照できる。メモリが静的とかそういう関係っぽい感じがする。

そろそろ発展的な内容と並行してやろうかな。過去ログをレビューしていこう。

# static とはメソッドって何がいいたかったんだろう…

Javaの道:クラス(12.final)まで。また読みづらいのが出てきた。

  • メンバ変数はメソッドやコンストラクタを通じて変更することが推奨されている。
  • そして private で修飾。

あれ ? スーパークラスも継承・隠蔽できるよね ? だから隠蔽されたクラスメソッドは super 付ければ呼べる…よね ? 自分で書いてみたらすぐ分かるだろうけど。

Javaの道:クラス(9.static)まで。昨日ちょっと書いたことがさらに詳しく説明してある。

  • クラス変数はオブジェクト間で共有されている。
  • main メソッドはオブジェクトが生成される前に実行されなければならないので static が付く。

Javaの道:クラス(8.オーバーライドとオーバーロード)まで。またややこしそうなのが出てきた。
サブクラス・スーパークラスというとついつい、オブジェクト生成の親子関係かと思ってしまう。前の章を読み返す回数が増えてきた。

  • スーパークラスのメソッドを再定義することをオーバーライドという。
  • 単一クラスに引数が違う同名のメソッドを複数作ることをオーバーロードという。
  • インスタンスメソッドとクラス (= 静的) メソッド。後者は修飾子 static が付き、インスタンスを作らなくても呼び出せる。 (メソッド (計算機科学) - Wikipedia)

Javaの道:クラス(6.コンストラクタ)まで。

  • メソッドの戻り型は必須。戻り値がない場合は void を指定。引数がない場合は空の括弧だけを書く。
  • 戻り型を書いてない方がコンストラクタ。 (誤解を招く書き方の見本)
  • 複数のコンストラクタは、引数の数と型で区別される。
  • コンストラクタ内で this を使う際は文の、super でスーパークラスのコンストラクタを使う際はコンストラクタの最初に持ってこないとコンパイルエラーになる。1つのコンストラクタで両方は使えない。
  • this も super も使われないときは、スーパークラスの引数なしコンストラクタが呼ばれる。this の呼び出し先も同様。明示的に継承した時はスーパークラスに引数なしコンストラクタがないとコンパイルエラーになる。全てのクラスは暗黙裡に Object クラスを継承しているので普段は問題ない。

# あれ、コンストラクタの名前ってクラスと同じじゃないと駄目 ?

忍者ブログ [PR]


Designed by A.com
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新TB
バーコード
ブログ内検索
アクセス解析
プロフィール
HN:
tnmt
性別:
非公開
(image created by E-Mail Icon Generator)