言語
アーキテクチャ
開発環境
サーバ構築
ITスキル
自動出題採点アプリ
書籍検索
海外サイト翻訳
Javaのis-aまたはhas-a関係は、以下のとおりです。
継承関係 …サブクラス is a スーパクラス。(継承に関連あり)
包含関係 …全体クラス has a 部分クラス。(カプセル化に関連あり)
このページでは、Javaのis-aまたはhas-a関係(オブジェクト指向的な関係)について説明しています。 以下では、is-aは継承にhas-aはカプセル化に関連しているというところまで、イメージを用いりながら説明しています。
1つのアプリケーションを構成するクラス間にはis-aとhas-aの2種類の関係が存在します。
1つはAクラスからBクラスを派生というクラス間の関係(is-a:継承関係)で、 もう1つは、CクラスでのDクラスの参照というクラス間の関係(has-a:包含関係)です。
これらの関係を理解する上で重要なことは、 is-a関係に関連しているのは継承で、has-a関係に関連しているのはカプセル化であるということです。
is-a関係とは継承に起因して発生するものです。 たとえば、AクラスからBクラスを派生というクラス間の関係(継承関係)で、以下のようなイメージになります。
class A
{
:
}
class B extends A
{
:
}
has-a関係とは、クラスという1つの構造体の中に複数のデータやメソッドをまとめて格納する、
カプセル化というオブジェクト指向に特徴的な機能に対応するものです。
たとえば、CクラスでのDクラスの参照というクラス間の関係(包含関係)で、以下のようなイメージになります。
class C
{
:
private D d; //クラスC has a クラスD
:
public void setD(D obj){
d = obj;
}
:
public D getD(){
return d;
}
:
}
class D
{
:
}
グループサイト zealseeds zealseedsラーニング zealseedsブックス 名か字 幸福の木の育て方
通算
(2006年12月26日以来)
Copyright (C) 2007-2009 zealseeds. All Rights Reserved.お問合せ