Реклама:

Например, в примере предыдущего параграфа, задание экземпляра theFourier класса fourier и вызов его метода plotfft производится следующим образом:

fourier theFourier = null; theFourier = new fourier();

result = theFourier.plotfft(3, data, new Double(interval));

3.5.2. Правила обращения к методам Java Builder

Java Builder преобразует функции MATLAB в один или более классов Java, которые составляют компонент Java. Каждая функция MATLAB реализуется как метод класса Java и может быть вызвана из приложения Java. Правила вызова метода Java Builder определяются интерфейсом, или сигнатурой метода.

Напомним, что сигнатуру (signature) метода образуют имя метода, число и типы параметров. Компилятор различает методы не по их именам, а по сигнатурам. Это позволяет записывать разные методы с одинаковыми именами, различающиеся числом и/или типами параметров. Такое дублирование методов называется перегрузкой. Тип возвращаемого значения не входит в сигнатуру метода, значит, методы не могут различаться только типом результата их работы.

Java Builder создает два вида интерфейсов для методов, соответствующих функциям MATLAB: стандартные и mlx интерфейсы. При этом Java Builder создает несколько интерфейсов каждого типа - для перегруженных методов, которые отличаются числом аргументов.

Напомним, что при создании компонента Java Builder записывает файлы в два подкаталога distrib и src. В каталоге src создается еще один подкаталог, имеющий имя компонента, например, factormatrix. Интерфейсы методов записываются в этот подкаталог в java-файл, имеющий имя класса, например, factor.java.

Стандартный интерфейс

Этот интерфейс определяет входные параметры для каждого перегруженного метода как массивы класса MWArray, или как массивы класса java.lang.Object и любого его подкласса (любого поддерживаемого типа Java). Аргументы, передаваемые как типы Java, преобразовываются в массивы MATLAB по правилам преобразования значений по умолчанию.

Стандартный интерфейс определяет возвращаемые значения, если таковые имеются, как массив типа Object[]. Стандартный интерфейс вызова возвращает массив из одного или более объектов Object. Каждый выходной массив должен быть в конце программы освобожден вызовом метода dispose().

Для общей функции MATLAB

function [Outl, Out2, varargout] = foo(In1, In2, InN,

varargin)

стандартный интерфейс, в зависимости от числа параметров, имеет вид:

• если нет входных параметров:

public Object[] foo(int numArgsOut)

• если есть один входной параметр:

public Object[] foo(int numArgsOut, Object inl)

• если есть от двух до N входных параметров:

public Object[] foo(int numArgsOut, Object inl, ... Object inN)

• если есть дополнительные параметры, представленные аргументом varargin:

public Object[] foo(int numArgsOut, Object inl, Object inN,

Object varargin)

Здесь numArgsOut есть целое число, указывающее число предполагаемых выводов метода. Чтобы не возвращать никаких параметров, нужно опустить этот параметр. Входные параметры in1, ... inN имеют тип object[]. Каждый необходимый ввод может иметь класс MWArray, или любой производный из MWArray класс. Выходной массив всегда имеет тип Object[] длины numArgsOut.


⇐ Предыдущая страница| |Следующая страница ⇒