skillup

技術ブログ

Java

Javaのオブジェクト指向に関して

投稿日:2016年2月11日 更新日:

staticメソッド

静的なメソッドで名前付き定数やユーティリティメソッドなどインスタンスを生成することなく使用するメソッド。

どちらかというと例外的な使い方です。

インスタンスメソッド、インスタンス変数にアクセスできないなどのデメリットがある。

アクセス修飾子

public・・・無制限にアクセスできる

(何も記述しない)・・パッケージプライベート 同じパッケージの中からアクセスできる

protected ・・パッケージに加え、継承したクラスのアクセスも許可する

private・・自分自身からしかアクセスさせない

なお変数のアクセス制限はクラスのアクセス制限が適用されてからになるので、publicがついていてもクラス自身がディフォルトスコープの場合、パッケージ外からアクセスできない。

抽象クラス

  • abstract修飾子がつくことで抽象メソッドを持つことができる(つけないと持てない)
  • インスタンス生成が不可能になる。(継承を前提とすることになる)

オーバーライド(親クラスのメソッドを上書きすること)

  • 同じシグネチャ(メソッド名と引数型)のメソッドは継承先のクラスで再定義することが可能。
  • ただしいくつか原則がある。
  • シグネチャ(メソッド名と引数型)を変更することはできない
  • アクセス修飾子は変更できるが、元のアクセス修飾子よりも緩くなければいけない
  • 戻り値は変更できるが、元の型のサブタイプでなければいけない。
  • throws節は削除または変更できるが、変更する場合、元の型のサブタイプでなければいけない
  • 元のメソッドがfinalだとオーバーライドできない。
  • abstractがついている場合、必ず継承しなくてはいけない
  • 継承した場合アノテーションで@overrideをつける
  • オーバーロードと勘違いしないように

オーバーロード(同名メソッドを複数もつこと)

  • 同名のメソッドを定義できるが、引数、戻り値が違っても構わない。
  • ルールとしては戻り値が全部一緒なものはNG。ルールはこれだけ

interface

  • フィールドには暗黙でpublic static final
  • メソッドにはpublic abstractが付く

-Java

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

JAXRSによるRESTAPI作成方法

業務でJavaによりWEBAPI(Rsetful API)を作成する機会ががあったのでちょっとメモしておきます。 Contents1 RestAPIとは2 プログラムの作成方法について RestAPI …

no image

JSFのメッセージのレンダリング

ManagedBeanとJSFでメッセージのやり取りをする場合、直接メッセージを変数として持たせるよりは、JSFの仕組みを通じてメッセージを出力させたほうが適切です。 Contents1 エラーメッセ …

no image

ポリモフィズム(多態性)とは

Javaでオブジェクト指向の考え方の重要な考え方であるポリモフィズムについて。 Contents1 ポリモフィズムとは?2 ソース ポリモフィズムとは? 日常的に使っていながらいざ説明するとなると困り …

no image

JSFのifタグ

JSFは基本的にテンプレートなので、 HTML+CSS+JavaScript ロジック側からの変数の出力 ループ処理 以上のことをさせることはあまりありません。 が、まれに条件分岐なんかをさせたいとき …

no image

StreamのMap処理

Javaのstreamですが知れば知るほどいろいろな機能がありますね。 基本的にプログラムって配列(コレクション含む)とオブジェクトの処理が中心になるので、配列の処理をいかにうまくできるかは非常に大事 …

アーカイブ