クラス ダイアグラム ビューアー
説明
クラス ダイアグラム ビューアー アプリでは、クラス実装の詳細と階層を表示するダイアグラムを作成できます。このアプリを使用してクラス構造体を確認し、クラス ダイアグラムを他のユーザーと共有できます。これらのダイアグラムには、次の詳細を含めることができます。
プロパティとメソッドおよびそのアクセス属性を含む、クラスの内部構造
名前空間を含む、継承関係をもつクラスの階層
グラフィカル インターフェイスまたは matlab.diagram.ClassViewer
で定義されるコマンド ライン API を使用してクラス ダイアグラムを作成できます。
![](classviewer_full_tool_view_1.png)
クラス ダイアグラム ビューアー を開く
MATLAB® ツールストリップ: [アプリ] タブの [MATLAB] で、アプリのアイコンをクリックします。
MATLAB コマンド プロンプト: 「
matlab.diagram.ClassViewer
」と入力します。
例
単純なクラス ダイアグラムの作成と保存
クラス ダイアグラム ビューアーを開きます。[クラス ブラウザー] ペインで、[クラス、名前空間、またはフォルダーのインポート] ボタン を展開して [名前空間のインポート] を選択します。名前空間として「
matlab.unittest
」と入力し、[OK] をクリックします。unittest
のフォルダーが [クラス ブラウザー] に表示されます。
unittest
フォルダーを展開して InteractiveTestCase
クラスを選択します。ツールストリップの [追加] ボタンをクリックし、クラスのカードを [クラス ダイアグラム ビューアー] キャンバスに追加します。同じメソッドを使用して TestCase
クラスを追加します。TestCase
は InteractiveTestCase
のスーパークラスなので、クラス ダイアグラム ビューアーは自動的に InteractiveTestCase
から TestCase
までの矢印を描画してこの関係を示します。
クラス カードの上部にある青い縞模様の境界は、これらのクラスの両方がハンドル クラスであることを示しています。[凡例] ペインはキャンバス上のグラフィックス効果とアイコンが何を表しているのかを示しています。
[クラス ブラウザー] から直接キャンバスに項目をドラッグすることもできます。ビューアーに Test
クラスをドラッグします。カード上部にある は
Test
に表示可能なスーパークラスがあることを示しています。
をクリックしてスーパークラスをダイアグラムに追加します。
Test
から TestSuite
を指す矢印は TestSuite
が Test
のスーパークラスであることを示しています。
ドラッグ アンド ドロップによるビューアーでのクラスの移動に加えて、ツールストリップの [ズームとパン] セクションで以下のようなオプションを使用してビューをカスタマイズできます。
ズームインおよびズームアウト
現在の画面サイズに合わせたダイアグラムの表示
パン
ツールストリップの [ビュー] セクションで、[mixin] チェック ボックスをオンにします。この操作を行っても mixin クラスはダイアグラムに自動的に追加されませんが、この後でスーパークラスを追加するいずれかの操作を実行すると、ビューアーによって mixin クラスが表示に追加されます。
Test
のすべてのスーパークラスを追加するには、Test
クラス カードを右クリックして [すべてのスーパークラスの追加] を選択します。CustomDisplay
mixin が Test
のスーパークラスとして表示され、TestSuiteExtension
が TestSuite
のスーパークラスとして表示されます。CustomDisplay
の名前がイタリックで表記され、抽象クラスであることを示します。
スーパークラスとサブクラスの追加には、それぞれ 2 つのオプションがあります。
スーパークラスの追加: 指定したクラスの直接的な継承元となるスーパークラスを追加します。
すべてのスーパークラスの追加: 指定したクラスの直接的または間接的な継承元となるすべてのスーパークラスを追加します。上記の例では、
Test
はTestSuiteExpansion
から間接的に継承します。サブクラスの追加: 指定したクラスから直接的に継承する既知のサブクラスを追加します。
すべてのサブクラスの追加: 指定したクラスから直接的または間接的に継承するすべての既知のサブクラスを追加します。
メモ
MATLAB では、指定したクラスのすべての既存のサブクラスが特定されない可能性があります。その場合、[クラス ブラウザー] を使用して手動でサブクラスを追加します。
クラス階層を表示できるほか、それ自体のクラス定義も確認できます。カードのクラス名の横にある矢印をクリックして、Test
のクラス カードを展開します。クラス カードが展開され、クラスで定義されるプロパティとメソッドが表示されます。スーパークラスから継承されたプロパティとメソッドはサブクラス カードに表示されません。
プロパティ名とメソッド名の横にあるアイコンは、プロパティとメソッドのアクセス レベルを識別します。たとえば、ロック アイコンは ExternalFixtures
がプライベート プロパティであることを示しています。
クラス カードでプロパティまたはメソッドを選択すると、[インスペクター] ペインにアクセス情報やその他の情報も表示されます。
1 つ以上のクラスのソース コードを表示するには、そのカードを選択してツールストリップの [ソースに移動] をクリックします。ソース コード ファイルが MATLAB エディターで開きます。
ダイアグラムを保存または共有するには、次の 2 つのオプションのいずれかを使用します。
[エクスポート] をクリックしてダイアグラムを静的イメージとして保存します。
[保存]、[名前を付けて保存] を選択し、クラス ダイアグラム ビューアー インスタンスで再度開いて編集できる MLDATX ファイルを作成します。
ダイアグラムへの関連付けの追加
R2024a 以降
クラス ダイアグラム ビューアーでは、クラス間の "関連付け" を表示できます。クラス検証を使用してクラス プロパティの型を別のクラスとして明示的に定義している場合、クラス ダイアグラム ビューアーでこの関連付けを表示できます。
次の 2 つのクラスを MATLAB パスに保存します。
classdef ClassA properties Property1 ClassB PropertySelf ClassA end end
classdef ClassB properties Property1 double end end
クラス ダイアグラム ビューアーを開きます。[クラス ブラウザー] ペインで、[クラス、名前空間、またはフォルダーのインポート] ボタン を展開して [クラスをインポート] を選択します。「
ClassA
」と入力し、[OK] をクリックします。この手順を ClassB
について繰り返します。両方のクラスが [クラス ブラウザー] に表示されます。
[クラス ブラウザー] からキャンバスに ClassA
と ClassB
をドラッグします。カードのクラス名の横にある矢印をクリックして、ClassA
のクラス カードを展開します。クラス カードが展開され、クラスで定義されるプロパティとメソッドが表示されます。
ツールストリップの [ビュー] セクションで、[関連付け] チェック ボックスをオンにします。この操作により、識別可能なすべての関連付けの矢印がダイアグラムに追加されます。この場合、
ClassA
のProperty1
の型はClassB
なので、矢印はProperty1
をClassB
のクラス カードに接続します。ClassA
のPropertySelf
の型はClassA
なので、矢印はそのプロパティを元のメイン カードClassA
に接続します。
[関連付け] チェック ボックスを使用して、矢印のオンとオフを切り替えることができます。矢印は、クラス カードが折りたたまれている場合でも表示されます。
クラス ダイアグラム ビューアーでは、クラス検証を使用してプロパティを定義している場合にのみ関連付けを識別できます。このように定義している場合、クラス カードにプロパティのクラスが表示されます。詳細については、プロパティのクラスの検証を参照してください。また、関連付けをオンにすると、現在ダイアグラム内にあるクラス間の接続のみが表示されます。たとえば、ClassB
がダイアグラムに含まれていない場合、ClassA
の Property1
との関連付けを表示するためにこれがアプリによって自動的に追加されることはありません。
プログラムでの使用
matlab.diagram.ClassViewer
matlab.diagram.ClassViewer
は、クラスを読み込まずにクラス ダイアグラム ビューアー インスタンスを開きます。
matlab.diagram.ClassViewer(Name=Value
)
Name=Value
)matlab.diagram.ClassViewer(
は指定されたクラスを [クラス ブラウザー] ペインとキャンバスの両方に追加します。有効な名前と値の引数は次のとおりです。Name=Value
)
string またはオブジェクト名として指定されるクラス名をもつ
Classes
string として指定されるフォルダー名をもつ
Folders
string として指定される名前空間名をもつ
Namespaces
その他の名前と値の引数については、matlab.diagram.ClassViewer
を参照してください。引数を Name1=Value1
,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。
ヒント
クラス ダイアグラム ビューアーは、
matlab.diagram.ClassViewer
クラスのインスタンスです。一度に複数のビューアーを開くには、クラス コンストラクターを使用します。が 2 つのクラス間の矢印上に表示される場合、追加のクラスはクラス カード自体ではなく、接続されている 2 つのクラス間の階層上にあります。
をクリックし、階層のその部分に表示可能なすべてのクラスを追加します。
クラス ダイアグラム ビューアーの使用中にクラス コードに変更を加えた場合、[リフレッシュ] をクリックしてダイアグラムを自動的に更新できます。クラス ファイルが削除されたりアプリで使用できなくなったりした場合、クラスが同期していないがクラス カード自体はダイアグラムから削除されないことがアプリによって示されます。
バージョン履歴
R2021a で導入R2024a: 関連付けを表示
クラス ダイアグラム ビューアーで、クラス間の関連付けを識別して表示できるようになりました。クラス検証を使用してクラス プロパティの型を別のクラスとして明示的に定義している場合、矢印でプロパティをその型のクラス カードに接続することにより、クラス ダイアグラム ビューアーでこの関連付けを表示できます。
R2024a: パッケージから名前空間に名前を変更
MATLAB で、パッケージを名前空間と呼ぶようになりました。この用語変更を反映するために、アプリとそのコマンド ライン インターフェイス (matlab.diagram.ClassViewer
) が更新されています。それらの動作は同じままです。
R2023b: サブクラスを追加するための新しいオプション
サブクラスを追加するための 2 つの新しいオプションを利用できるようになりました。クラス カードを右クリックするか、ツール ストリップのアイコンを使用してこれらのオプションにアクセスします。
サブクラスの追加: 指定したクラスから直接的に継承する既知のサブクラスを追加します。
すべてのサブクラスの追加: 指定したクラスから直接的または間接的に継承するすべての既知のサブクラスを追加します。
MATLAB では、指定したクラスのすべての既存のサブクラスが特定されない可能性があります。その場合、[クラス ブラウザー] を使用して手動でサブクラスを追加します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)