среда, 25 июля 2007 г.

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(). Результат: Результат - получили значение поля базового класса

О наследовании классов расскажу позже.

Итог

поля класса видят только методы данного класса и его дочки. Всем остальным доступ закрыт

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