/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
InstallerSamples/!Tutorial/15_Classes/Properties.pas
35 строк
1 KB
Artem Pelenitsyn
change encoding for all *.pas and *.cs files: cp1251 -> utf-8
28 дек 2015, 14:25
28 дек 2015, 14:25
49378a6
Код
Авторство
О чём код?
// Свойства (properties) type /// Класс персоны Person = class private nm: string; ag: integer; procedure SetAge(a: integer); // Процедура доступа к свойству располагается обычно в приватной секции begin if a<0 then // Перед установкой значения свойства мы можем сделать дополнительные проверки a := 0; // и скорректировать значение свойства, либо сгенерировать исключение ag := a; end; public constructor (n: string; a: integer); begin nm := n; ag := a; end; /// Имя персоны property Name: string read nm; // Свойство Name доступно только на чтение и возвращает значение поля nm /// Возраст персоны property Age: integer read ag write SetAge; procedure Print; begin writeln('Имя: ',nm,' Возраст: ',ag); end; end; var p: Person := new Person('Иванов', 20); begin writeln('Имя: ',p.Name); // Менять Name нельзя, доступ - только на чтение p.Age := -1; // Попытка изменения возраста на отрицательное значение приводит к корректировке: возраст становится = 0 writeln('Возраст: ',p.Age); end.