powerpoint

Обектно-ориентирано програмиране. Конспект на лекцията. Основни принципи на обектно-ориентирано ООП програмиране и структура на обектно-ориентирана програма Инкапсулация Полиморфизъм Наследяване Най-използваните обектно-ориентирани езици за програмиране.

Обектно-ориентирано програмиране

Преглед на презентацията

Конспект на лекцията • Основни принципи на обектно-ориентирано ООП програмиране и структура на обектно-ориентирана програма Инкапсулация Полиморфизъм Наследяване • Най-използваните обектно-ориентирани езици за програмиране

Обектно-ориентирано програмиране • Това е ефективен начин за организиране на програмата. • Основен принцип: програмата се състои от набор от обекти, които могат да съхраняват и обработват данни и да комуникират с други обекти. • История: ЛПС възниква в момент, когато обикновените програми започват да надвишават определена продължителност и структурни програми станаха объркващи. Често използван в началото на 90-те години • Основно предимство: добре проектираната обектна структура на програмата позволява много по-добра ориентация в кода

Принцип на ЛПС • Философията на ЛПС се основава на устройството на реалния свят • Основни концепции на ЛПС: клас и обект • Три основни принципа: Наследяване на полиморфизъм на капсулиране

Класа • Това е структуриран тип данни, характеризиращ се със свойства (данни, атрибути) и способности (методи) • Пример: Човешки клас • Свойства: име, възраст, височина, тегло, цвят на косата. • Способности: да се представи, да каже възрастта, мерките и т.н., да попита друго лице за името, възрастта.

Обект • Специфичен елемент от класа, с ясно дадени характеристики Janko Kováč Majka Nováková 45 години 35 години светло кестенява коса, 180 cm кестенява коса, 165 cm

Обектно-ориентирана програма 2. Дефиниция на методи Man: Write_your_data

Обектно-ориентирана програма 3. Създаване и използване на обекти Man Janko, Majka Janko.Zapíš_si_svoje_údaje Majka.Zapíš_si_svoje_údaje Janko.Predstav_sa Janko.Povedz_svoj_vek Janko.Povedz_svoju_výšku Majka.Predstav_sa Majka.Povedz_svoj_zv_vj_zved_zvoj_zv_vj_zvj_zv_vj_zv_v_v_v_v_v_v_v_v.

Обектно-ориентирана програма 4. Изкачване Здравейте, аз съм Янко Ковач Здравейте, аз съм Майка Новакова На 45 години съм на 35 години Имам 180 сантиметра Имам 165 сантиметра

Капсулиране • Механизъм, който свързва данни и код заедно • В напълно обектно-ориентирана програма всички данни и функции принадлежат към клас (с изключение на основната програма) • Капсулирането позволява по-добра видимост на програмата и по-специално може да защити данните от нежелана намеса от отвън • Вътре в класа могат да бъдат всички данни или методи, определени като частни - достъпни само за самия клас, публични - достъпни и за други класове

Капсулиране Класен човек < verejné: znakový reťazec meno Predstav_sa >Мъж Majka Majka.Predstav_sa Кажи „Здравей, аз съм“ Majka.meno

Капсулиране Класен човек < súkromné: znakový reťazec meno verejné: Predstav_sa >Мъж Majka Majka.Predstav_sa Кажи „Здравей, аз съм“ Majka.meno 

Техника за скриване на данни • Това е най-безопасният и най-често срещаният начин за проектиране на класове • Основен принцип: всички данни са частни Класът е създал интерфейс, т.е. методи, които позволяват данните да се променят и комуникират при необходимост • Това ще гарантира, че при използване на класа са достъпни и променливи само данните, които интерфейсът позволява, което е важно напр. при програмиране на библиотеки, които да се използват от други програмисти и т.н.

Техника за скриване на данни • Правилно проектиран човешки клас Човешки клас

Конструктор и деструктор • Това са функции, които се задействат автоматично при създаване (конструктор) и унищожаване (деструктор) на обект от даден клас • Конструкторът се използва главно за първоначална настройка на стойността на данните на даден обект и за разпределяне на необходимата памет главно за освобождаване на резервирана памет

Конструктор и деструктор • Модифициран човешки клас Човешки клас

Полиморфизъм • Това е универсалност, респ. многоцелево използване на методи • Метод с едно име може да се използва за различни видове данни или различен брой входове, което улеснява ориентацията в програмата 

Наследяване • Всеки клас може да има своето „дете“, т.е. класът, който е получен от него, поема всички негови данни и методи (с изключение на конструктора и деструктора) • Полученият клас може да бъде потомък на произволен брой класове и всеки клас може имат произволен брой потомци • За родителския клас може да направи своите лични данни достъпни за своите потомци, такива данни се наричат ​​защитени и освен самия клас и неговите подкласове, те не са достъпни по друг начин отвън

Наследяване Клас Храна: цена на производител дата на консумация Клас Зеленчуци: цена на производител дата на консумация клас на качество Клас Стоки: цена на производител Клас Обувки: цена на производител размер

Наследяване Клас Родител: публичен: Predstav_sa Povedz_adresu защитен: име частен адрес: ПИН Клас Дете: Predstav_sa Povedz_adresu Povedz_zálnyného_zástupce име адрес legal_represent ПИН - недостъпен!

Наследяване Клас Подарък: od_koho pre_koho Клас Стоки: цена добавател Клас: Растение: растение_име Клас Букет: цена добавател име_на_растения от_кохо pre_koho доставка_адрес

Виртуални методи • Ако методът на родителския клас е виртуален, това означава, че детето, което го наследи, може да го промени според своите нужди Метод Въображение: Казвам се Peter Slovák Живея в Братислава Метод на въображението: Казвам се Miro Slovak Живея в Братислава Баща ми е Питър Словак Метод Въображение: Здравейте, аз съм Миро Словак Баща ми е Питър Словак

Приятелски класове • Всеки клас може да разреши на други класове достъп до техните лични данни, ако го маркират като приятелски клас Родител: приятелски клас Дете публично: Imagine_protected: частно име: ПИН Клас Дете: Imagine_legal_representative name legal_representative PIN

Обобщение • Обектно-ориентираното програмиране е начин за ефективна програмна организация, при който програмата е набор от взаимодействащи обекти • В напълно обектно-ориентирана програма всички данни и функции (с изключение на основната програма и глобалните променливи) са част от клас • Основните принципи на обектно-ориентираното програмиране са: Наследяване на поликален капсулиране

Обектно-ориентирани езици • Simula (1967) - първият OO език, използван за симулации при изграждането на интегрални схеми, компютърна графика, образование и др. • C ++ (1983) - един от най-разпространените комерсиално използвани езици, с много приложения, позволява OO и процедурно програмиране • Common Lisp - език, позволяващ много общи операции, с голям брой типове данни, използван за програмиране на интернет приложения, софтуер за дизайн, игри и др. • Java (1995) - език, разработен за стартиране на програми на различни платформи и от отдалечени източници, с вградена мрежова поддръжка • JavaScript (1995) - скриптов език (инструкциите се изпълняват директно от код, без компилация), разработен за създаване на Интернет приложения • Perl (1987) - динамичен език, първоначално разработен за текстообработка, днес се използва при програмиране на интернет приложения, при управление на системи и др., ефективен е при манипулиране на низове и управление на паметта

Обектно-ориентирани езици • PHP (1994) - отразяващ език за програмиране (програма може да промени структурата си по време на изпълнение), използван главно при уеб разработка. • Python (1980) - език, поддържащ различни техники за програмиране, с акцент върху лесен за четене код, много софтуер го използват като свой скриптов език • Smalltalk (1970) - отразяващ език OO, първоначално разработен с образователна цел, но по-късно също намери богато търговско приложение • Visual Basic - език, управляван от събития (стартирането на програмата зависи от взаимодействието на потребителя), има много широко използване в бизнес приложения • TCL - скриптов език с прост синтаксис, разработен с намерението да стане част от различни приложения