X++: поля класса
[id:24]
Здесь и далее использую термин «поле класса» в том же значении, как это было в С++: это переменные, объявленные в классе (но не в его методах).
Пробуем создать поле.
Создаем класс BLG24_ClassBase и в нем объявляем поле iMyVar типа int и конструктор инициализации поля:
class BLG24_ClassBase
{
int iMyVar;
void new()
{
iMyVar = 123;
}
}
Создаем еще один класс "BLG24_ClassChild" и в нем определяем статический метод main():
class BLG24_ClassChild
{
static void main(Args _args)
{
BLG24_ClassBase cls;
cls = new BLG24_ClassBase();
print cls.iMyVar;
pause;
}
}
Компилируйте. Не получилось? Значит делаем вывод: доступ к полям класса BLG24_ClassBase «из вне» не возможен. Возьмите на заметку.
Делаем класс BLG24_ClassChild дочерним от BLG24_ClassBase с помощью ключевого слова "extends". Добавляем метод getMyVar(), чтобы получить значение поля и переписываем имеющийся метод main():
class BLG24_ClassChild extends BLG24_ClassBase
{
int getMyVar()
{
return iMyVar;
}
static void main(Args _args)
{
BLG24_ClassChild cls;
cls = new BLG24_ClassChild();
print cls.getMyVar();
pause;
}
}
Запустите метод main(). Результат:
О наследовании классов расскажу позже.
Итог
поля класса видят только методы данного класса и его дочки. Всем остальным доступ закрыт
Комментариев нет:
Отправить комментарий