Объектно-ориентированное программирование. Богомолов А - 12 стр.

UptoLike

12
ные от аналогичных параметров для Луны или Солнца. Связь между классом и объек-
тами в сущности такая же, как между типом и переменными этого типа.
Каждый класс объектов может реагировать на строго определенные сообщения.
Так происходит потому, что каждый класс обладает набором функций, которые связа-
ны с объектами класса. Функции являются частью этого класса объектовего членами.
На рисунке показан объект, содержащий функции-члены. Программа посылает этому
объекту сообщения (messages), которые вызывают функции-члены (member functions)
данного объекта. Затем эти функции-члены обрабатывают объект.
Эти функции называются
функциями-членами, поскольку
принадлежат классу, то есть яв-
ляются его членами. Функции-
члены программируются так же,
как обычные функции, однако
объявляются в классе и могут
использоваться только с объек-
тами этого класса.
Конструкторы
Допустим, имеется объект класса Clock. При объявлении этого объекта, он ав-
томатически инициализуется. Это означает, что при создании нового объекта класса
Clock переменной timestarted присваивается текущее системное время. Кто (или вернее
что) это делает?
Для этого нужно определить специальную функцию, которая будет специально
вызываться при создании каждого объекта. В языке С++ это можно сделать при помо-
щи специальной функции, которая называется конструктором (constructor).
Конструктор похож на любую другую функцию-член, за исключением следующего:
1. Имя конструктора совпадает с именем класса. Например, конструктором класса
Clock является функция Clock().
2. При создании нового объекта конструктор вызывается автоматически. Например,
если создать два объекта mine и yours класса Clock, то конструктор Clock() будет
вызван дважды- один раз при создании объекта mine и другой при создании объекта
yours.
3. Конструктор нельзя вызвать из программы напрямую. Например, нельзя написать
инструкцию mine.Clock(); Конструктор вызывается только однаждыпри создании
объекта.
4. У конструктора нет возвращаемого типа. Возможно существование нескольких кон-
структоров с разными списками аргументов.
Простейшие правила проектирования класса
1) Переменные класса находятся в разделе privat.
2) Для каждой переменной класса в классе должна быть функция установки.
3) Функции установки обычно являются открытыми.
4) Для каждой закрытой переменной класса в классе должна быть функция доступа.
5) Функция доступа (обычно) расположена в открытой части класса.
                                        12

ные от аналогичных параметров для Луны или Солнца. Связь между классом и объек-
тами в сущности такая же, как между типом и переменными этого типа.
       Каждый класс объектов может реагировать на строго определенные сообщения.
Так происходит потому, что каждый класс обладает набором функций, которые связа-
ны с объектами класса. Функции являются частью этого класса объектов – его членами.
На рисунке показан объект, содержащий функции-члены. Программа посылает этому
объекту сообщения (messages), которые вызывают функции-члены (member functions)
данного объекта. Затем эти функции-члены обрабатывают объект.
                                                          Эти функции называются
                                                   функциями-членами, поскольку
                                                   принадлежат классу, то есть яв-
                                                   ляются его членами. Функции-
                                                   члены программируются так же,
                                                   как обычные функции, однако
                                                   объявляются в классе и могут
                                                   использоваться только с объек-
                                                   тами этого класса.

                                   Конструкторы
       Допустим, имеется объект класса Clock. При объявлении этого объекта, он ав-
томатически инициализуется. Это означает, что при создании нового объекта класса
Clock переменной timestarted присваивается текущее системное время. Кто (или вернее
что) это делает?
       Для этого нужно определить специальную функцию, которая будет специально
вызываться при создании каждого объекта. В языке С++ это можно сделать при помо-
щи специальной функции, которая называется конструктором (constructor).
Конструктор похож на любую другую функцию-член, за исключением следующего:

1. Имя конструктора совпадает с именем класса. Например, конструктором класса
   Clock является функция Clock().
2. При создании нового объекта конструктор вызывается автоматически. Например,
   если создать два объекта mine и yours класса Clock, то конструктор Clock() будет
   вызван дважды- один раз при создании объекта mine и другой при создании объекта
   yours.
3. Конструктор нельзя вызвать из программы напрямую. Например, нельзя написать
   инструкцию mine.Clock(); Конструктор вызывается только однажды – при создании
   объекта.
4. У конструктора нет возвращаемого типа. Возможно существование нескольких кон-
   структоров с разными списками аргументов.

Простейшие правила проектирования класса
1) Переменные класса находятся в разделе privat.
2) Для каждой переменной класса в классе должна быть функция установки.
3) Функции установки обычно являются открытыми.
4) Для каждой закрытой переменной класса в классе должна быть функция доступа.
5) Функция доступа (обычно) расположена в открытой части класса.