Лекция 4. КЛАССЫ В ОБЪЕКТНО-ОРИЕНТИРОВАННОМ
ПРОГРАММИРОВАНИИ1. Понятие класса. Виды классов и методов. Понятие класса Класс можно рассматривать как шаблон, по которому составляются инструкции одни и те же для всех объектов. Самое полезное свойство этого шаблона - единообразный способ организации всех характеристик объекта. В объектно-ориентированной терминологии шаблон, на котором основаны похожие объекты называется классом. Когда программа создает объект какого-либо класса, она указывает значения его атрибутов. Затем объект может пользоваться методами, написанными для его класса. Все объекты одного и того же класса имеют идентичный набор методов. Типы их внутренних данных также одинаковы, но значения могут различаться, как различаются, скажем, имена людей. Класс является также и типом данных. Фактически класс - это реализация абстрактного типа данных, то есть другое название типа данных, определяемого пользователем. Поскольку класс - это тип данных, его можно использовать в качестве типа атрибута. Предположим, к примеру, что вы разрабатываете класс для обработки данных о служащих своей организации. В состав атрибутов такого класса может входить идентификатор служащего, его имя, фамилия и адрес. Адрес же состоит из почтового индекса и названия улицы, города, штата. Поэтому было бы разумно создать класс с такими атрибутами и вместо того, чтобы дублировать их в классе служащего, просто указать, что объект класса служащего включает в себя объект другого класса, с помощью которого представляется адрес служащего. Виды классов 1) - управляющие классы (Control classes). Они не занимаются обработкой данных и не продуцируют видимого результата. Вместо этого они управляют ходом выполнения программы. Например, классы приложения представляют саму программу. В большинстве случаев каждая программа создает ровно один класс приложения. В его задачи входит запуск программы, обнаружение факта выбора из меню и выполнение кода программы в соответствии с запросами пользователя; 2) - предметные классы (Entity classes). Они используются для создания объектов, занимающихся обработкой данных. Например, класс Счет относится к предметным. Классы, представляющие людей, материальные объекты и события (например, деловые совещания) являются предметными. В большинстве объектно-ориентированных программ есть хотя бы один предметный класс, по которому создаются объекты. На самом деле в простейшем случае объектно-ориентированная модель данных строится из представления связей между объектами, созданными на основе предметных классов. 3)- интерфейсные классы (Interface classes). Они занимаются вводом и выводом информации. Например, при работе с графическим пользовательским интерфейсом, то каждое окно или меню, встречающееся в программе, является объектом интерфейсного класса. В объектно-ориентированной программе предметные классы не выполняют собственно ввод и вывод. Ввод с клавиатуры обеспечивают интерфейсные объекты. Они принимают данные и посылают их предметным объектам для хранения и обработки. Вывод на экран или печать форматируются интерфейсными объектами, получающими данные от других. Во многих объектно-ориентированных программах используется еще четвертый вид классов 4)- контейнерный (Container classes). Контейнерные классы служат вместилищем нескольких объектов одного и того же класса. Поскольку они собирают объекты вместе, иногда их называют также агрегатами. Контейнерный класс отвечал бы за хранение объектов в определенном порядке, их перебор и, возможно, поиск. Они предоставляют доступ ко всем объектам одного и того же класса. Виды методов В классах используются следующие виды методов: - конструктор (Constructor) - метод, имя которого совпадает с именем класса. Он выполняется при создании объекта. Поэтому конструктор обычно содержит инструкции по инициализации переменных объекта; - деструктор (Destructor) - метод, выполняемый при уничтожении объекта. Не во всех объектно-ориентированных языках есть деструкторы. Обычно они применяются для освобождения системных ресурсов - например, оперативной памяти, - занимаемых объектом; - методы чтения (Accessors) - еще их называют get-методами - возвращают значение закрытого атрибута объекта. Именно так внешние объекты обычно получают доступ к инкапсулированным данным. - методы изменения (Mutators), set-методы, устанавливают новое значение атрибута. Таким образом, внешние объекты изменяют инкапсулированные данные.Прочие методы, определенные в классе, зависят от назначения класса, то есть от действий, которые он призван выполнять.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|