Программирования процедурная, объектно-ориентированная, функ


Download 441.8 Kb.
Pdf ko'rish
bet5/9
Sana19.01.2023
Hajmi441.8 Kb.
#1101973
1   2   3   4   5   6   7   8   9
Bog'liq
osnovy obektno-orientirovannogo programmirovania na baze azyka c 5-20

Диаграмма класса – наглядное представление класса на листе 
бумаги. 
В верхней части диаграммы класса записывается имя класса, а в 
нижней – поля и методы (рис. 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:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling