X++: аксессоры 1
[id:040]
Раз уж поля класса не доступны извне, то нужно писать методы доступа к ним. Эти методы называются аксесорами, или accessor methods. Обычно они очень простые, словно ситцевые трусы.
Есть устоявшийся стандарт именования таких методов:
- название метода должно совпадать с именем поля, для которого он является аксесором. Разница только в префиксе;
- метод должен начинаться на префикс «set», если он используется только для установки значения поля класса;
- метод должен начинаться на префикс «get», если он используется только для получения значения поля класса;
- метод должен начинаться на префикс «parm», если он используется и для установки и для получения значения поля класса.
Пробуем, создай класс:
class BLG40_AccessorMethods
{
AmountMST myMoney;
public void setMyMoney(AmountMST _newValue)
{
myMoney = _newValue;
}
public AmountMST getMyMoney()
{
return myMoney;
}
public AmountMST parmMyMoney(AmountMST _newValue)
{
myMoney = _newValue;
return myMoney;
}
}
Расширеный тип данных AmountMST относиться к семейству вещественных чисел, его используют для хранения денежных сумм.
Примечателен метод parmMyMoney, его код является типовым для аксесоров получения/изменения значений полей. Это все теже бабушкины секреты (best practices).
Ну, и протестируем . Создай статический метод main для класса:
static void main(Args _args)
{
BLG40_AccessorMethods cls = new BLG40_AccessorMethods();
print cls.getMyMoney();
cls.setMyMoney(45.3);
print cls.getMyMoney();
print cls.parmMyMoney(100.33);
pause;
}
Заметьте, что первое обращение через метод "getMyMoney" идет к неинициализированому значению поля "myMoney". Но система сделала это за нас, для целых чисел ноль — это значение по умолчанию.
Итог
- запомнить шаблон аксессора parmMyMoney, ибо в будущем будем делать подобное постоянное
- целочисленные, и не только, переменные автоматически инициализируются при создании
Комментариев нет:
Отправить комментарий