понедельник, 27 августа 2007 г.

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, ибо в будущем будем делать подобное постоянное
  • целочисленные, и не только, переменные автоматически инициализируются при создании

Комментариев нет: