私はオブジェクトを持っていますPerson p;
。次のプロパティはp
のプロパティです。
Properties:
PersonName: 'John Doe'
JobType: [1x1 JobTypes]
JobType は、JobTypes
JobType の列挙を含むクラスのオブジェクトです。JobType: Manager
代わりに見たいJobType: [1x1 JobTypes]
。何かご意見は?
私はオブジェクトを持っていますPerson p;
。次のプロパティはp
のプロパティです。
Properties:
PersonName: 'John Doe'
JobType: [1x1 JobTypes]
JobType は、JobTypes
JobType の列挙を含むクラスのオブジェクトです。JobType: Manager
代わりに見たいJobType: [1x1 JobTypes]
。何かご意見は?
私は、Matlab の列挙型クラスが好きではありませんでした。したがって、ここで何が起こっているのかを真に理解するには、経験が少なすぎます。それでも、試してみます。列挙型クラスには値しかありません。文字列ではありません。のようなもの
J = JobTypes.Manager
JobTypes
は、クラス オブジェクトを変数に割り当て、 にJ
関連付けられた値に設定しますManager
。この値は Matlab の内部で選択され、ユーザーには表示されません。J = Manager
コマンド ラインのようにきれいに表示されるのは、Matlab の標準disp
とdisplay
列挙型クラスの実装によるものです。このメソッドは、別のクラス内からの呼び出しと組み合わせて正しく機能しないと思います。display
display
これを回避するには、次のように独自のメソッドを定義できPerson
ます。
classdef Person < handle
properties
PersonName = 'John Doe'
JobType = JobTypes.Manager
end
methods
function display(self)
fprintf(...
['Properties:\n',...
' Personname: ''%s''\n',...
' JobType: %s\n'],...
self.PersonName,...
self.JobType.char);
end
end
end
JobType.char
toString
列挙型クラスの Matlab のバージョンであるため、これを挿入するとfprintf
実際の文字列が表示されます! (これについて@zagyに称賛)
Mathworks がdisplay
独自のクラスのいくつかのメソッドをどのように実装したかを見て、ディスプレイでスーパークラス、メソッド、イベントなどへのリンクを取得する方法を感じてください。