| 外部インタフェース/API | ![]() |
MATLABコマンドに影響を与えるJavaメソッド
Javaオブジェクトおよび配列に対して機能するMATLABコマンドは、これらのオブジェクトのクラスによって実現されるか、あるいは継承されるメソッドを利用します。MATLABコマンドの中には、依存するJavaメソッドを変更することによって、挙動を多少変更することができるものがあります。
DISPおよびDISPLAYの効果の変更
dispコマンドを使ってMATLABにおいて変数や式の値を表示することができます。セミコロンを使わずにコマンドラインを終了させても、disp関数を呼び出します。dispを使ってMATLABにJavaオブジェクトを表示することも可能です。
dispがJavaオブジェクトに対して機能するとき、MATLABは、オブジェクトが属するクラスのtoStringメソッドを使って、出力を書式化します。クラスがこのメソッドを実現しない場合は、継承されたtoString メソッドが用いられます。中間のancestorクラスがこのメソッドを定義しない場合、java.lang.Objectクラスによって定義されたtoStringメソッドを用います。そのようなメソッドをクラス定義内で実現することによって、作成するクラス内の継承されたtoStringメソッドを変更することができます。この方法で、MATLABがクラスのオブジェクトに関する情報を表示する方法を変更することができます。
ISEQUALの効果の変更
MATLABのisequalコマンドは、2つあるいはそれ以上の配列のタイプ、サイズ、内容の等しさを比較します。このコマンドは、Javaオブジェクトの等しさをテストするためにも用いられます。
isequalを使って2つのJavaオブジェクトを比較するとき、MATLABはJavaメソッドequalsを使って比較を行います。MATLABは、最初にコマンドで指定されたオブジェクトのクラスを決定し、つぎにクラスによって実現されたequalsメソッドを使います。このクラス内で実現されていない場合は、継承されたequalsメソッドが用いられます。中間のancestorクラスがこのメソッドを定義しない場合は、これは、java.lang.Objectクラスによって定義されたequalsメソッドです。
クラス定義内でそのようなメソッドを実現することによって、作成したクラス内の継承されたequalsメソッドを変更することができます。この方法で、MATLABがクラスのメンバの比較を行う方法を変更することができます。
DOUBLEおよびCHARの効果の変更
JavaメソッドtoDoubleおよびtoCharを定義して、MATLABのdoubleおよびcharコマンドの出力を変更することも可能です。詳細は、「MATLAB doubleデータタイプへの変換」と「MATLAB charデータタイプへの変換」を参照してください。
| メソッドに関する情報の取得 | 未定義のメソッドの取り扱い方法 | ![]() |