Методы класса
Методы класса используются для реализации поведения и функциональности класса. В момент создания экземпляра класса для его атрибутов выделяется память. Методы класса оперируют атрибутами экземпляра класса. Некоторые методы могут иметь область видимости private или protected, такие методы могут быть вызваны только другими методами этого же класса. Другие методы могут иметь видимость public, в этом случае они могут быть вызваны другими частями приложения.
В классе могут быть несколько методов с одинаковыми именами, но различными списками параметров или возвращаемыми типами. Создание методов с одинаковыми именами называется перегрузкой методов. Перегруженные методы делают ваши классы более гибкими для пользователей класса.
В зависимости от области видимости методы могут быть вызваны либо внутри класса, либо за пределами класса. Методы могут иметь или не иметь параметры. Независимо от того, имеет ли методы параметры, он может возвращать значение.
Определение метода начинается с оператора method и заканчивается оператором end method. Также хорошей практикой считается использование в методе оператора return, даже если метод ничего не возвращает (void). Использование в качестве возвращаемого значения void, означает, что метод ничего не возвращает. Это поведение отличается от выходных параметров, которые используются для возврата значений в списке параметров метода.
Упрощённый синтаксис для определения метода класса:
method [visibility] {<return-type> | void } <method-name> ( [<parameter-use> <parameter> as <type-name> ][,…]): <body of method> return [return-value]. end method.
visibility
Область видимости метода: public, private, protected.
return-type
Тип данных возвращаемого значения. Может быть встроенный тип данных ABL или пользовательский тип данных. Если указывается void, то метод не возвращает значения.
method-name
Имя метода, применяются такие же требования как к имени класса.
parameter-use
Тип параметра: input, output или input-output.
parameter
Имя параметра.
type-name
Тип данных параметра. Может быть встроенный тип данных ABL или пользовательский тип данных.
body of method
ABL-код для реализации функциональности метода. Если метод должен вернуть значение, то код должен возвращать значение с типом, указанным в определении метода.
return-value
Возвращаемое значением методом. Должно соответствовать типу данных, указанному в определении метода.