<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.cusu.edu.ua/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
		<id>https://wiki.cusu.edu.ua/index.php?action=history&amp;feed=atom&amp;title=Java_%D0%9E%D0%9E%D0%9F</id>
		<title>Java ООП - Історія редагувань</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.cusu.edu.ua/index.php?action=history&amp;feed=atom&amp;title=Java_%D0%9E%D0%9E%D0%9F"/>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php?title=Java_%D0%9E%D0%9E%D0%9F&amp;action=history"/>
		<updated>2026-07-06T00:16:05Z</updated>
		<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php?title=Java_%D0%9E%D0%9E%D0%9F&amp;diff=260680&amp;oldid=prev</id>
		<title>V kotyak в 07:55, 11 січня 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php?title=Java_%D0%9E%D0%9E%D0%9F&amp;diff=260680&amp;oldid=prev"/>
				<updated>2017-01-11T07:55:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Попередня версія&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версія за 07:55, 11 січня 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Рядок 268:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Рядок 268:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- метакласи (Metaclass).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;- метакласи (Metaclass).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[ПКДзJ|На початок курсу]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>V kotyak</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php?title=Java_%D0%9E%D0%9E%D0%9F&amp;diff=103358&amp;oldid=prev</id>
		<title>V kotyak: Створена сторінка: Як показала практика, традиційні методи процедурного програмування не здатні справитис...</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php?title=Java_%D0%9E%D0%9E%D0%9F&amp;diff=103358&amp;oldid=prev"/>
				<updated>2013-10-11T06:34:52Z</updated>
		
		<summary type="html">&lt;p&gt;Створена сторінка: Як показала практика, традиційні методи процедурного програмування не здатні справитис...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Як показала практика, традиційні методи процедурного програмування не здатні&lt;br /&gt;
справитися ні з наростаючою складністю програм і їх розробки, ні з необхідністю&lt;br /&gt;
підвищення їх надійності. У другій половині 80-х років виникла настійна потреба в новій&lt;br /&gt;
методології програмування, яка була б здатна вирішити весь цей комплекс проблем. Нею&lt;br /&gt;
стало об'єктно-орієнтоване програмування (ООП).&lt;br /&gt;
&lt;br /&gt;
Об'єктно-орієнтований підхід до проектування заснований на представленні&lt;br /&gt;
наочної області завдання у вигляді безлічі моделей для незалежної від мови розробки&lt;br /&gt;
програмної системи на основі її прагматики. Прагматика визначається метою розробки&lt;br /&gt;
програмної системи, наприклад, обслуговування клієнтів банку, управління роботою&lt;br /&gt;
аеропорту, обслуговування чемпіонату світу по футболу і тому подібне. У формулюванні&lt;br /&gt;
мети беруть участь предмети і поняття реального світу, що мають відношення до&lt;br /&gt;
створюваної системи. При об'єктно-орієнтованому підході ці предмети і поняття&lt;br /&gt;
замінюються моделями, тобто певними формальними конструкціями.&lt;br /&gt;
&lt;br /&gt;
Модель містить не всі ознаки і властивості предмету, що представляється нею, або&lt;br /&gt;
поняття, а тільки ті, які істотні для програмної системи, що розробляється. Таким чином,&lt;br /&gt;
модель &amp;quot;бідніша&amp;quot; предмету, що простіше представляється нею, або поняття.&lt;br /&gt;
&lt;br /&gt;
Простота моделі по відношенню до реального предмету дозволяє зробити її&lt;br /&gt;
формальною. Завдяки такому характеру моделей при розробці можна чітко виділити всі&lt;br /&gt;
залежності і операції над ними в створюваній програмній системі. Це спрощує як&lt;br /&gt;
розробку і вивчення (аналіз) моделей, так і їх реалізацію на комп'ютері.&lt;br /&gt;
&lt;br /&gt;
Об'єктно-орієнтований підхід володіє такими перевагами, як:&lt;br /&gt;
&lt;br /&gt;
- зменшення складності програмного забезпечення;&lt;br /&gt;
&lt;br /&gt;
- підвищення надійності програмного забезпечення;&lt;br /&gt;
&lt;br /&gt;
- забезпечення можливості модифікації окремих компонентів&lt;br /&gt;
програмного забезпечення без зміни останніх його компонентів;&lt;br /&gt;
&lt;br /&gt;
- забезпечення можливості повторного використання окремих&lt;br /&gt;
компонентів програмного забезпечення.&lt;br /&gt;
&lt;br /&gt;
Систематичне застосування об'єктно-орієнтованого підходу дозволяє розробляти&lt;br /&gt;
добре структуровані, надійні в експлуатації, програмні системи, що досить просто&lt;br /&gt;
модифікуються. Цим пояснюється інтерес програмістів до об'єктно-орієнтованого підходу&lt;br /&gt;
і об'єктно-орієнтованих мов програмування. ООП є одним з напрямів теоретичного і&lt;br /&gt;
прикладного програмування, що найінтенсивніше розвиваються.&lt;br /&gt;
&lt;br /&gt;
Об'єкти.&lt;br /&gt;
&lt;br /&gt;
За визначенням називатимемо об'єктом поняття, абстракцію або будь-&lt;br /&gt;
який предмет з чітко окресленими межами, що має сенс в контексті даної прикладної&lt;br /&gt;
проблеми. Введення об'єктів переслідує дві мети:&lt;br /&gt;
&lt;br /&gt;
- розуміння прикладного завдання (проблеми);&lt;br /&gt;
&lt;br /&gt;
- введення основи для реалізації на комп'ютері.&lt;br /&gt;
&lt;br /&gt;
Приклади об'єктів: кватирка, Банк &amp;quot;Імперіал&amp;quot;, Петро Сидоров, справа № 7461,&lt;br /&gt;
ощадкнижка і так далі. Кожен об'єкт має певний час життя. В процесі виконання&lt;br /&gt;
програми, або функціонування якої-небудь реальної системи, можуть створюватися нові&lt;br /&gt;
об'єкти і знищуватися що вже існують.&lt;br /&gt;
&lt;br /&gt;
Об'єкт - це мислима або реальна суть, що володіє характерною поведінкою, і&lt;br /&gt;
відмітними характеристиками, що є важливим в наочній області. Кожен об'єкт має стан,&lt;br /&gt;
володіє чітко певною поведінкою і унікальною ідентичністю.&lt;br /&gt;
&lt;br /&gt;
Стан. &lt;br /&gt;
&lt;br /&gt;
Розглянемо приклад. Будь-яка людина може знаходитися в деякому&lt;br /&gt;
положенні (стані): стояти, сидіти, лежати, і - в той же час здійснювати якісь дії.&lt;br /&gt;
Наприклад, людина може стрибати, якщо вона стоїть, і не може, якщо вона лежить, для&lt;br /&gt;
цього їй потрібно буде спочатку встати. Також в об'єктно-орієнтованому програмуванні&lt;br /&gt;
стан об'єкту може визначатися наявністю або відсутністю зв'язків між модельованим&lt;br /&gt;
об'єктом та іншими об’єктами.&lt;br /&gt;
&lt;br /&gt;
Наприклад, якщо у людини є вудка (у нього є зв'язок з об'єктом &amp;quot;Вудка&amp;quot;), він може&lt;br /&gt;
ловити рибу, а якщо вудки немає, то така дія неможлива. З цих прикладів видно, що набір&lt;br /&gt;
дій, які може здійснювати людина, залежить від параметрів об'єкту, що його моделює.&lt;br /&gt;
Для розглянутих вище прикладів такими характеристиками, або атрибутами,&lt;br /&gt;
об'єкту &amp;quot;Чоловік&amp;quot; є:&lt;br /&gt;
&lt;br /&gt;
- поточне положення людини (стоїть, сидить, лежить);&lt;br /&gt;
&lt;br /&gt;
- наявність вудки (є чи ні).&lt;br /&gt;
&lt;br /&gt;
У конкретному завданні можуть з'явитися і інші властивості, наприклад, фізичний&lt;br /&gt;
стан, здоров'я (хвора людина зазвичай не стрибає).&lt;br /&gt;
&lt;br /&gt;
Стан (state) - сукупний результат поведінки об'єкту: одна із стабільних умов, в&lt;br /&gt;
яких об'єкт може існувати, охарактеризованих кількісно; у будь-який момент часу стан&lt;br /&gt;
об'єкту включає перелік (зазвичай статичний) властивостей об'єкту і поточні значення&lt;br /&gt;
(зазвичай динамічні) цих властивостей.&lt;br /&gt;
&lt;br /&gt;
Поведінка. &lt;br /&gt;
&lt;br /&gt;
Для кожного об'єкту існує певний набір дій, які з ним можна провести.&lt;br /&gt;
&lt;br /&gt;
Наприклад, можливі дії з деяким файлом операційної системи ПК:&lt;br /&gt;
&lt;br /&gt;
- створити;&lt;br /&gt;
&lt;br /&gt;
- відкрити;&lt;br /&gt;
&lt;br /&gt;
- читати з файлу;&lt;br /&gt;
&lt;br /&gt;
- писати у файл;&lt;br /&gt;
&lt;br /&gt;
- закрити;&lt;br /&gt;
&lt;br /&gt;
- видалити.&lt;br /&gt;
&lt;br /&gt;
Результат виконання дій залежить від стану об'єкту на момент здійснення дії, тобто&lt;br /&gt;
не можна, наприклад, видалити файл, якщо він відкритий ким-небудь (заблокований). В&lt;br /&gt;
той же час дії можуть міняти внутрішній стан об'єкту - при відкритті або закритті файлу&lt;br /&gt;
властивість &amp;quot;відкритий&amp;quot; набуває значень &amp;quot;та чи ні&amp;quot;, відповідно.&lt;br /&gt;
&lt;br /&gt;
Програма, написана з використанням ООП, зазвичай складається з безлічі об'єктів,&lt;br /&gt;
і все ці об'єкти взаємодіють між собою. Взаємодія між об'єктами в програмі відбувається&lt;br /&gt;
за допомогою передачі повідомлень між ними.&lt;br /&gt;
&lt;br /&gt;
У термінології об'єктно-орієнтованого підходу поняття &amp;quot;дія&amp;quot;, &amp;quot;повідомлення&amp;quot; і&lt;br /&gt;
&amp;quot;метод&amp;quot; є синонімами. Тобто вирази &amp;quot;виконати дію над об'єктом&amp;quot;, &amp;quot;викликати метод&lt;br /&gt;
об'єкту&amp;quot; і &amp;quot;послати повідомлення об'єкту для виконання якої-небудь дії&amp;quot; еквівалентні.&lt;br /&gt;
Остання фраза з'явилася з наступної моделі. Програму, побудовану за технологією ООП,&lt;br /&gt;
можна уявити собі як віртуальний простір, заповнений об'єктами, які умовно &amp;quot;живуть&amp;quot;&lt;br /&gt;
деяким життям. Їх активність виявляється в тому, що вони викликають один у одного&lt;br /&gt;
методи, або посилають один одному повідомлення. Зовнішній інтерфейс об'єкту, або&lt;br /&gt;
набір його методів, - це опис того, які повідомлення він може приймати.&lt;br /&gt;
&lt;br /&gt;
Поведінка (behavior) - дії і реакції об'єкту, виражені в термінах передачі&lt;br /&gt;
повідомлень і зміни стану; видима ззовні і відтворна активність об'єкту.&lt;br /&gt;
Унікальність. Унікальність - це те, що відрізняє об'єкт від інших об'єктів.&lt;br /&gt;
Наприклад, у вас може бути декілька однакових монет. Навіть якщо абсолютно всі їх&lt;br /&gt;
властивості (атрибути) однакові (рік випуску, номінал і так далі) і при цьому ви можете&lt;br /&gt;
використовувати їх незалежно одна від одної, вони як і раніше залишаються різними&lt;br /&gt;
монетами.&lt;br /&gt;
&lt;br /&gt;
У машинному уявленні під параметром унікальності об'єкту найчастіше&lt;br /&gt;
розуміється адреса розміщення об'єкту в пам'яті.&lt;br /&gt;
&lt;br /&gt;
Identity (унікальність) об'єкту полягає в тому, що завжди можна визначити два&lt;br /&gt;
посилання на один і той же об'єкт або на різні об'єкти. При цьому два об'єкти можуть у&lt;br /&gt;
всьому бути схожими, їх образ в пам'яті може представлятися однаковими&lt;br /&gt;
послідовностями байтів, але, проте, їх унікальність може бути різна.&lt;br /&gt;
Найбільш поширеною помилкою є розуміння унікальності як імені посилання на&lt;br /&gt;
об'єкт. Це невірно, оскільки на один об'єкт може указувати декілька посилань, і посилання&lt;br /&gt;
можуть міняти свої значення (посилатися на інші об'екти).&lt;br /&gt;
&lt;br /&gt;
Отже, унікальність (identity) - властивість об'єкту; те, що відрізняє його від інших&lt;br /&gt;
об'єктів (автор не згоден з перекладом російського видання&lt;br /&gt;
Класи Всі монети з попереднього прикладу належать одному і тому ж классу&lt;br /&gt;
об'єктів (саме з цим пов'язана їх подібність). Номінальна вартість монети, метал, з якого&lt;br /&gt;
вона виготовлена, форма - це атрибути класу. Сукупність атрибутів і їх значень&lt;br /&gt;
характеризує об'єкт. Разом з терміном &amp;quot;атрибут&amp;quot; часто використовують терміни&lt;br /&gt;
&amp;quot;властивість&amp;quot; і &amp;quot;поле&amp;quot;, які воб’єктно-орієнтованому програмуванні є синонімами. Всі&lt;br /&gt;
об'єкти одного і того ж класу описуються однаковими наборами атрибутів. Проте&lt;br /&gt;
об'єднання об'єктів в класи визначається не наборами атрибутів, а семантикою. Так,&lt;br /&gt;
наприклад, об'єкти &amp;quot;стайня&amp;quot; і &amp;quot;кінь&amp;quot; можуть мати однакові атрибути: ціна і вік. При цьому&lt;br /&gt;
вони можуть відноситися до одного класу, якщо розглядаються в завданні просто як&lt;br /&gt;
товар, або до різних класів, якщо в рамках поставленого завдання використовувати по-&lt;br /&gt;
різному, тобто над ними здійснюватимуться різні дії.&lt;br /&gt;
&lt;br /&gt;
Об'єднання об'єктів в класи дозволяє розглянути завдання в більш загальній&lt;br /&gt;
постановці. Клас має ім'я (наприклад, &amp;quot;кінь&amp;quot;), яке відноситься до всіх об'єктів цього класу.&lt;br /&gt;
Крім того, в класі вводяться імена атрибутів, які визначені для об'єктів. У цьому сенсі&lt;br /&gt;
описання класу аналогічно опису типу структури або запису (record), що широко&lt;br /&gt;
застосовуються в процедурному програмуванні; при цьому кожен об'ект має той же сенс,&lt;br /&gt;
що і екземпляр структури (змінна або константа відповідного типу).&lt;br /&gt;
&lt;br /&gt;
Формально клас - це шаблон поведінки об'єктів певного типу із заданими&lt;br /&gt;
параметрами, що визначають стан. Всі екземпляри одного класу (об'єкти, породжені від&lt;br /&gt;
одного класу) мають один і той же набір властивостей і загальна поведінка, тобто&lt;br /&gt;
однаково реагують на однакові повідомлення.&lt;br /&gt;
&lt;br /&gt;
Відповідно до UML (Unified Modelling Language - уніфікована мова моделювання),&lt;br /&gt;
клас має наступне графічне уявлення.&lt;br /&gt;
&lt;br /&gt;
Клас зображається у вигляді прямокутника, що складається з трьох частин. У&lt;br /&gt;
верхній частині поміщається назван класу, в середній - властивості об'єктів класу, в&lt;br /&gt;
ніжній - дії, які можна виконувати з об'єктами данного класу (методи).&lt;br /&gt;
&lt;br /&gt;
Кожен клас також може мати спеціальні методи, які автоматично викликаються&lt;br /&gt;
при створенні і знищенні об'єктів цього класу:&lt;br /&gt;
&lt;br /&gt;
- конструктор (constructor) - виконується при створенні об'єктів;&lt;br /&gt;
&lt;br /&gt;
- деструкція (destructor) - виконується при знищенні об'єктів.&lt;br /&gt;
&lt;br /&gt;
Зазвичай конструктор і деструкція мають спеціальний синтаксис, який може&lt;br /&gt;
відрізнятися від синтаксису, використовуваного для написання звичайних методів класу.&lt;br /&gt;
Інкапсуляція. Інкапсуляція (encapsulation) - це заховання реалізації класу і&lt;br /&gt;
відділення його внутрішнього уявлення від зовнішнього (інтерфейсу). При використанні&lt;br /&gt;
об'єктно-орієнтованого підходу не прийнято застосовувати прямий доступ до&lt;br /&gt;
властивостей якого-небудь класу з методів інших класів. Для доступу до властивостей&lt;br /&gt;
класу прийнято задіювати спеціальні методи цього класу для отримання і зміни його&lt;br /&gt;
властивостей. Усередині об'єкту дані і методи можуть володіти різним ступенем&lt;br /&gt;
відвертості (або доступності). Ступені доступності, прийняті в мові Java, детально будуть&lt;br /&gt;
розглянуті в лекції6. Вони дозволяють тонше управляти властивістю інкапсуляції.&lt;br /&gt;
Відкриті члени класу складають зовнішній інтерфейс об'єкту. Це та&lt;br /&gt;
функціональність, яка доступна іншим класам. Закритими зазвичай оголошуються всі&lt;br /&gt;
властивості класу, а також допоміжні методи, які є деталями реалізації і від яких не&lt;br /&gt;
повинні залежати інші частини системи.&lt;br /&gt;
&lt;br /&gt;
Завдяки захованню реалізації за зовнішнім інтерфейсом класу можна міняти&lt;br /&gt;
внутрішню логіку окремого класу, не міняючи код решти компонентів системи. Ця&lt;br /&gt;
властивість називається модульність.&lt;br /&gt;
Забезпечення доступу до властивостей класу тільки через його методи також дає&lt;br /&gt;
ряд переваг. &lt;br /&gt;
&lt;br /&gt;
По-перше, так набагато простіше контролювати коректні значення полів,&lt;br /&gt;
адже пряме звернення до властивостей відстежувати неможливе, а значить, їм можуть&lt;br /&gt;
привласнити некоректні значення.&lt;br /&gt;
&lt;br /&gt;
По-друге, не складе труднощів змінити спосіб зберігання даних. Якщо інформація&lt;br /&gt;
почне зберігатися не в пам'яті, а в довготривалому сховищі, такому як файлова система&lt;br /&gt;
або база даних, потрібно буде змінити лише ряд методів одного класу, а не вводити цю&lt;br /&gt;
функціональність у всі частини системи. Програмний код, написаний з використанням&lt;br /&gt;
даного принципу, легко відлагоджувати.&lt;br /&gt;
&lt;br /&gt;
Наслідування. &lt;br /&gt;
&lt;br /&gt;
Наслідування (inheritance) - це відношення між класами, при&lt;br /&gt;
якому клас використовує структуру або поведінку іншого класу (одиночне наслідування),&lt;br /&gt;
або інших (множинне наслідування) класів. Наслідування вводить ієрархію&lt;br /&gt;
&amp;quot;загальне/особисте&amp;quot;, в якій підклас успадковує від одного або декількох більш загальних&lt;br /&gt;
суперкласів. Підкласи зазвичай доповнюють або перевизначають успадковану структуру і&lt;br /&gt;
поведінку.&lt;br /&gt;
&lt;br /&gt;
Поліморфізм. &lt;br /&gt;
&lt;br /&gt;
Поліморфізм є одним з фундаментальних понять в об'єктно-&lt;br /&gt;
орієнтованому програмуванні ряду із спадкоємством і інкапсуляцією. Слово&lt;br /&gt;
&amp;quot;поліморфізм&amp;quot; грецького походження і означає той, що &amp;quot;має багато форм&amp;quot;. Щоб зрозуміти,&lt;br /&gt;
що воно означає стосовно об'єктно-орієнтованого програмування, розглянемо приклад.&lt;br /&gt;
Припустимо, ми хочемо створити векторний графічний редактор, в якому нам потрібно&lt;br /&gt;
описати у вигляді класів набір графічних примітивів, - Point, Line, Circle, Box і так далі. У&lt;br /&gt;
кожного з цих класів визначимо метод draw для відображення відповідного примітиву на&lt;br /&gt;
екрані. Очевидно, доведеться написати код, який при необхідності відобразити малюнок&lt;br /&gt;
послідовно перебиратиме всі примітиви, на момент відсортування, що знаходяться на&lt;br /&gt;
екрані, і викликати метод draw у кожного з них. Людина, незнайома з поліморфізмом,&lt;br /&gt;
найімовірніше, створить декілька масивів (окремий масив для кожного типу примітивів) і&lt;br /&gt;
напише код, який послідовно перебере елементи з кожного масиву і викличе у кожного&lt;br /&gt;
елементу метод draw.&lt;br /&gt;
&lt;br /&gt;
На закінчення приведемо формальне визначення поліморфізму.Поліморфізм&lt;br /&gt;
(polymorphism) - положення теорії типів, згідно якому імена (наприклад, змінних)&lt;br /&gt;
можуть позначати об'єкти різних (але що мають загального батька) класів. Отже, будь-&lt;br /&gt;
який об'єкт, що позначається поліморфним ім'ям, може по-своєму реагувати на якийсь&lt;br /&gt;
загальний набір операцій.&lt;br /&gt;
&lt;br /&gt;
У процедурному програмуванні теж існує поняття поліморфізму, яке&lt;br /&gt;
відрізняється від розглянутого механізму в ООП. Процедурний поліморфізм припускає&lt;br /&gt;
можливість створення декількох процедур або функцій з одним і тим же ім'ям, але різною&lt;br /&gt;
кількістю або різними типами переданих параметрів. Такі однойменні функції&lt;br /&gt;
називаються перевантаженими, а само явище - перевантаженням (overloading).&lt;br /&gt;
Перевантаження функцій існує і в ООП і називається перевантаженням методів.&lt;br /&gt;
&lt;br /&gt;
Типи відносин між класами. Як правило, будь-яка програма, написана на&lt;br /&gt;
об'єктно-орієнтованій мові, є деякий набір зв'язаних між собою класів. Можна провести&lt;br /&gt;
аналогію між написанням програми і будівництвом будинку. Подібно до того, як стіна&lt;br /&gt;
складається з цегли, комп'ютерна програма з використанням ООП будується з класів.&lt;br /&gt;
&lt;br /&gt;
Причому ці класи повинні мати уявлення один про одного, для того, щоб спільно&lt;br /&gt;
виконувати поставлене завдання. Можливі наступні зв'язки між класами в рамках&lt;br /&gt;
об'єктної моделі (приводяться лише найбільш прості і часто використовувані види&lt;br /&gt;
зв'язків):&lt;br /&gt;
&lt;br /&gt;
- агрегація (Aggregation);&lt;br /&gt;
&lt;br /&gt;
- асоціація (Association);&lt;br /&gt;
&lt;br /&gt;
- спадкоємство (Inheritance);&lt;br /&gt;
&lt;br /&gt;
- метакласи (Metaclass).&lt;/div&gt;</summary>
		<author><name>V kotyak</name></author>	</entry>

	</feed>