2011-01-14 12 views
1

どのようにクラス階層を説明しますか。クラスとオブジェクトの階層

私はGoogleの力が下がったと思う。なぜなら、私が用語として「クラス階層」を検索したとき、クラスの構成方法とそれらの間の継承関係の例がいくつかあるからだ。それはクラス階層に関するものですか?どのようにクラス階層をC開発者に説明していますか?

また、クラス階層とオブジェクト階層の違いは何ですか?

実際に私は私のオフィスの仲間に土曜日のプレゼンテーションによるだと非常に多くの理論的な話題に出くわす:(

任意の助けをいただければ幸いです。私がしようとするでしょう

感謝

+2

"クラス"は定義、青写真 - 計画です。 「オブジェクト」は実行時の実際のインスタンスです。したがって、「デザインモード」では、クラス階層があります。実行時に、オブジェクト階層があります。 –

+0

はい、クラス階層は継承のレイヤーを使用して作成されます。なぜこれをC開発者に説明していますか? –

+0

ありがとうございます。私はOだけのプレゼンテーションをCのみを知っている学生に伝える必要があります。その明日と、私たちは階層などのような多くの理論的なものを持っているので緊張しています:( – Mustafa

答えて

5

クラス階層はおそらく、クラスと継承リンクで構成された構造を指します。例えば、などを継承するなどがあります。これはクラス階層を構成します。

new演算子を使用してCarのインスタンスを作成すると、Carオブジェクトが取得されます。関係する階層はありません。つまり、2つのクラスがそうであるように、「継承を通じて結合された2つのオブジェクト」はありません。インスタンス化時に、クラス階層が「平らになる」と言うことができます。

フレーズオブジェクト階層は、しばしば全体/部分構造を参照します。 Wheelという名前の別のクラスとCarからWheelという参照があり、車には最大4つの車輪が含まれている可能性があります(カーオブジェクトの車輪の配列や他の種類のコンテナを望む場合)。この配置は、全体/一部(「集約」または「構成」とも呼ばれる)関係が主要なリンクであるオブジェクトの実行時間のグラフ(階層ではなく)を構成します。

まとめ:クラス階層とオブジェクト階層は完全に異なり、関連していません。

こちらがお役に立てば幸いです。

+0

オブジェクト階層が実際にはBoochらそれらはそうですか?インスタンス階層でクラス階層が「フラット化」するのはちょっと奇妙に聞こえるとは思わないでしょうか? – Tim

+0

@Tim:「オブジェクト階層」とは全体/部分構造を指します。 *多くの場合、必ずしもそうではありません。詳細な研究なしに、これが特定の情報源の場合であるかどうかはわかりませんが、それはまったく起こりそうもなく、全く奇妙なものではありません。実際には、厳密な木ではなくグラフである構造をもたらすことが多いにもかかわらず、既知の現象(http://en.wikipedia.org/wiki/Mereology for backgroundを参照)。 – CesarGon

+0

@CesarGon:Booch氏の作品では、「アプリケーションとのOOAD」では、クラス間の関係を定義する階層と、オブジェクト間の関係を定義する階層の「一部」が区別されます。階層構造の一部は、あなたが「全体/部分構造」と呼んでいるものに何らかの形で結びついていますか?実際には明確ではありませんが、Boochは彼の作品に「全体/部分構造」という用語を使用しません。 – Tim

関連する問題