Программирования процедурная, объектно-ориентированная, функ
Download 441.8 Kb. Pdf ko'rish
|
osnovy obektno-orientirovannogo programmirovania na baze azyka c 5-20
- Bu sahifa navigatsiya:
- Рис. 1.1.
- Диаграмма объекта
Диаграмма класса – наглядное представление класса на листе
бумаги. В верхней части диаграммы класса записывается имя класса, а в нижней – поля и методы (рис. 1.1). 6 / 16 11 Рис. 1.1. Диаграмма класса Data Объект (экземпляр класса) – конкретная сущность, определенная во времени и пространстве. Можно создать произвольное количество объектов одного класса. Объекты, относящиеся к одному классу, имеют одинаковые атрибуты (поля) и поведение (методы). При этом каждый объект содержит соб- ственные копии полей и методов класса. Диаграмма объекта – наглядное представление объекта на листе бумаги. В верхней части диаграммы объекта записывается имя объекта и имя класса, а в нижней – поля и методы (рис. 1.2, 1.3). Два объекта одного класса отличаются только текущим состояни- ем, при этом можно изменить состояние одного объекта так, чтобы он стал равным другому объекту. Обращение к полям и методам класса: имя_класса.имя_поля имя_класса.вызов_метода. Например, Data.day – обращение к полю day класса Data, Data.Next()– обращение к методу Next класса Data. Обращение к полям и методам объекта: имя_объекта.имя_поля имя_объекта.вызов_метода. Например, birthday.month – обращение к полю month объекта birthday, myday.Set()– обращение к методу Set объекта myday. 7 / 16 12 Рис. 1.2. Диаграммы объектов birthday и myday класса Data (поля объектов не инициализированы) Рис. 1.3. Диаграммы объектов birthday и myday класса Data (поля объектов инициализированы) Рассмотрим особенности процедурного и объектно-ориентиро- ванного программирования. В процедурном программировании данные не инкапсулируются, так как любые методы (процедуры, функции) могут обращаться к любым данным при условии соответствия количества и типов пара- метров. Рассмотрим пример. В процедурной программе (на языке С) обрабатывается информация о студентах и преподавателях универси- тета, при этом используется функция регистрации студента в биб- лиотеке. Заголовок функции имеет вид Registration (char* name /* имя*/, int year /* год рождения*/). Функцию Registration можно вызвать для любых данных сим- вольного и целого типа. Поэтому программист может воспользовать- ся этой функцией не только для студента, но и для преподавателя (имя преподавателя имеет тип char* , а год рождения – тип int). Дело в том, что в процедурном программировании отсутствует связь 8 / 16 13 между данными и методами, т. е. не существует способа защиты дан- ных от неправильного использования. Именно этот факт является не- достатком процедурных языков. В ООП данные и методы объединены. Использование класса Student1 (рис. 1.4) исключает возможность регистрации препода- вателя в студенческой библиотеке, так как только методы этого клас- са Set (инициализация ролей) и Registraion (регистрация сту- дента в библиотеке) имеют доступ к полям name и year. Рис. 1.4. Диаграмма класса Student1 и диаграммы объектов St11 и St12 Инкапсуляция позволяет поместить данные и методы в класс и таким образом установить связь между ними. Download 441.8 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling