skillup

技術ブログ

Java

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

投稿日:

staticメソッド

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

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

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

アクセス修飾子

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

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

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

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

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

抽象クラス

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

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

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

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

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

interface

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

 

 

 

-Java

執筆者:


comment

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

関連記事

no image

Streamについて

Java8で導入されたStreamですが、名前はしっていたものの、使い方がわからず放置していました。 これを機に調べたのですが、コレクションフレームワークの拡張のようですね。 特徴としては以下のような …

no image

データベース文字コード対策他

Contents1 JDBC文字化け対策2 BigDecimal2.1 ソース2.2 参考リンク3 CreateQuery4 jsfのconvertNumber JDBC文字化け対策 データベースがu …

no image

複合コンポーネント

JSFではラベルやテキストといったコンポーネントをグループ化し、一つのまとまりとすることができます。 メリットとしては似たような部分をテンプレート化しておくことで保守性を向上させることができます。 さ …

no image

JSPでのAjax(dwr使用)

JSPネタ3本目。 Ajaxです。 こちらも独自のライブラリを使うようですね。 drwというものが有名のようです。 Contents1 dwr1.1 pomでの記述1.2 web.xml1.3 dwr …

no image

配列の初期化&代入

最近、業務ではコードの量が肥大化し、とにかく短く書くことを心がけてます。 まあ、短ければいいってもんでもないんですが・・・ Listにクラスを使いするときに↓みたいな書き方を紹介したんですが、 [cr …