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

Annnotationについて その2

Java(JavaEE)をやりだして半年ぐらいたつんですが、個人的に鬼門だとおもっていたのが下記内容です。 MVCではないコンポーネントの考え方 クラスを使ったジェネリクスの使い方(型パラメータなど) …

no image

jenkins構築

いままでjenkinsについての記事を書いていなかったので記録しておこうと思います。 Contents1 前提条件2 jenkins構築3 設定ファイル変更(ポート&URL変更)4 セキュリティ有効化 …

no image

try~catch~finallyで気を付けること

JavaでExceptionが発生したとき、基本的にはtry~catch~finallyをつかっているのですが、今回Exceptionが吐かれないという事態があったのでメモします。 [crayon-5 …

no image

JavaでのPDF出力

JavaでのPDFファイルをダウンロードしたいと要望があって社内アプリの開発をしていましたが、思った以上にバグがでてかなり長期戦になりました。 やりたいことは ボタンを押すとファイルのダウンロードが始 …

no image

O/Rマッパー iciqlについて

以前、このブログでも紹介したO/Rマッパーのiciqlについて、使い方や問題点がある程度わかったので書いておきます。 Contents1 インストール2 自動生成3 注意点3.1 Date型のインポー …