- •14. Разветвляющиеся программы.
- •14.1. Условный оператор if.
- •If Условие then Оператор1 else Оператор2;
- •If Условие then Оператор;
- •If Условие then if ПодУсловие then ... Else ...
- •14.2. Случайные величины.
- •14.3. Логические операции и выражения.
- •Логические операции и таблицы истинности
- •15. Циклические программы.
- •15.1. Оператор перехода Go To.
- •15.2. Операторы цикла Do.
- •1. Бесконечный цикл
- •2. Со счетчиком
- •3. C предусловием
- •15.3. Оператор цикла For.
- •16. Массивы данных.
- •16.1. Использование массивов при программировании.
- •16.2. Рекурсия.
- •16.3. Сортировка.
- •17. Элементы управления.
- •17.5. Списки (ListBox, ComboBox, CheckedListBox).
- •18. Объектное программирование.
- •18.1. Статические и динамические компоненты объектов.
- •18.2. Поля и свойства объектов.
- •18.3. Конструкторы.
- •Конструктор по умолчанию
- •Конструктор копирования
- •Конструктор преобразования
- •18.4. Наследование.
- •Простое наследование
- •Множественное наследование
- •18.5. Полиморфизм.
- •10. Организация поточных процессов.
- •10.1. Особенности поточной формы организации процессов.
- •10.2. Основные параметры поточных линий.
- •10.3. Виды поточных линий.
- •5. По характеру движения конвейера.
- •6. По уровню механизации процессов различают автоматические и полуавтоматические поточные линии.
- •7. По степени охвата производства.
- •9.1. Структура и длительность цикла процесса
- •9.5. Длительность производственного цикла сложного процесса
- •7. Основы организации процессов.
- •7.1. Принципы организации процессов.
- •7.2. Типы операционных систем.
18.2. Поля и свойства объектов.
По́ле кла́сса или атрибу́т (переменная-член, data member, class field, instance variable) в объектно-ориентированном программировании — переменная, связанная с классом или объектом. Все данные объекта хранятся в его полях. Доступ к полям осуществляется по их имени. Обычно тип данных каждого поля задаётся в описании класса, членом которого является поле.
Свойство — способ доступа к внутреннему состоянию объекта, имитирующий переменную некоторого типа. Обращение к свойству объекта выглядит так же, как и обращение к структурному полю (в структурном программировании), но, в действительности, реализовано через вызов функции. При попытке задать значение данного свойства вызывается один метод, а при попытке получить значение данного свойства — другой.
При применении свойств
можно задать значение по умолчанию, которое будет хранится в данном свойстве (или указать, что никакого значения по умолчанию не предполагается);
можно указать, что это свойство только для чтения.
Как правило, свойство связано с некоторым внутренним полем (переменной) объекта. Но свойству вообще может не быть сопоставлена ни одна переменная объекта, хотя пользователь данного объекта имеет дело с ним так, как если бы это было настоящее поле.
Свойства повышают гибкость и безопасность программирования, поскольку, являясь частью (открытого) интерфейса, позволяют менять внутреннюю реализацию объекта без изменения его свойств. По своей сути, свойства предназначены для того, чтобы свести программирование к операциям над свойствами, скрывая вызовы методов.
Во многих языках программирования свойства реализуются в виде пары методов: метод, получающий текущее значение свойства, называется акцессор (accessor); метод, задающий новое значение свойства — мутатор (mutator).
18.3. Конструкторы.
В объектно-ориентированном программировании конструктор класса — специальный блок инструкций, вызываемый при создании объекта.
Конструктор схож с методом, но отличается от метода тем, что не имеет явным образом определённого типа возвращаемых данных, не наследуется, и обычно имеет различные правила для рассматриваемых модификаторов. Конструкторы часто выделяются наличием одинакового имени с именем класса, в котором объявляется. Их задача — инициализировать члены объекта и определить инвариант класса, сообщив в случае некорректности инварианта. Корректно написанный конструктор оставит объект в «правильном» состоянии. Неизменяемые объекты тоже должны быть проинициализированы конструктором.
В большинстве языков конструктор может быть перегружен, что позволяет использовать несколько конструкторов в одном классе, причём каждый конструктор может иметь различные параметры.
Виды конструкторов:
Некоторые языки программирования различают несколько особых типов конструкторов:
конструктор по умолчанию — конструктор, не принимающий аргументов;
конструктор копирования — конструктор, принимающий в качестве аргумента объект того же класса (или ссылку из него);
конструктор преобразования — конструктор, принимающий один аргумент (эти конструкторы могут вызываться автоматически для преобразования значений других типов в объекты данного класса).