Основні поняття об’єктно - орієнтованого програмування
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Клас- спеціальний тип даних, як категорія, яка має своі поля, місце і властивість.

Сама категорія визначається загальною властивістю, яку мають всі єкземпляри цієі категоріі, тобто конкретні об’єкти класу.

Клас - структурний тип. Наприклад в Паскалі - тип RECORD (записи).

Прикладом класу і класифікації може бути ієрархічне дерево „музичні інструменти”. Всі музичні інструменти мають загальну властивість - видавати звуки. Але методи вилучення звуків різні: вдаряти по струнах, дути у мунштук, натискати на клавіші.

Класи мають :

а) поля - дані об’єкту одного типу ( як тип RECORD );

б) властивості - поля даних, що впливають на поведінку об’єкта;

застосовуються для опису об’єкта, викликаючи методи їх обробки;

в) методи - підпрограммb з вихідним кодом обробки властивостей і полів.

При описі змінної типу клас для полів і властивостей цієї змінної в пам’яті виділяється (резервується) відповідний об’єм. При створенні об’єкту працює метод конструктора для початковоі ініціалізаціі полів об’єкта.

При знищенні об’єкта для звільнення пам’яті визивається метод деструктора. Ці методи не можна визивати із програмного коду, вони виконуються тільки автоматично.

Змінна описана як клас, який являється вказівкою на єкземпляр класу (але без символу ^ ). Звернення до такоі змінної - звичайне, а до полів, властивостей, методів класу (тобто до членів класу) - через крапку, як до полів запису RECORD .

ЗАУВАЖЕННЯ!!!

Нe можна описувати змінну типу клас всередині програми як локальну.

Наслідування, інкапсуляціі, поліморфізм –

Три основні властивості класу

Наслідування - це можливість породженого класу нащадка (descendant) наслідувати властивості свого предка (ansestor). При цьому наслідуються всі поля, властивості і методи батьківського класу, не потрібно іх засновувати і розробляти додатково. Але породжений клас може володіти більшими можливостями, наприклад, властивість видавати звуки перенесено з батьківського класу „музичні інструменти” на клас „гітара”. Механізм наслідування дозволяє багаторазово застосовувати програмний код. Відповідно класи м.б. систиматизовані в ієархію, як у візуальній біблітеці компонент Delphi (VCL)

Інкапсуляція - це сполучення даних і методів іх обробки в одному об’єкті. Mетоди об’єкту визначають спосіб змінення даних. Наприклад : немає необхідності знати спосіб отримання звуку - через мунштук для духових, або сруни для струнних. Код реалізації метода не важливий, це принцип закриття інформаціі. Спосіб добуття звуку заключений всередині інструмента. Принцип „закриття об’єкту” - оточення не може випадково змінити цей об’єкт.

Поліморфізм - це одий і той же метод, виконується по різному для різних об’єктів, при необхідності конкретного об’єкта можна перевизначити методи, враховуючи особливості даного об’єкта.



Лабораторна робота №2-3.

Тема: Створення простого додатка. Знайомство із системою

об'єктно-орієнтованого візуального проектування Delphi.

Мета:Ознайомиться з ООВП на прикладі створення додатка.

Хід роботи:

I. Конструювання форми :

1. Запустити Delphi {Меню Windows Пуск à Програми}, відкрити новий додаток {File à New Application à «No»}. На екрані відкрилася порожня нова Forma (Form1).

2. На Form розмістити кнопку Tbutton {виділити на сторінці Standard палітри компонентів піктограму кнопки одним клацанням миші, вибрати місце на полі Form1 і клацнути M à з'явиться кнопка, ім'я якої за замовчуванням – «Button1»}.

3. На Form розмістити мітку Label {Аналогічно: Standard à піктограма Label à клацнути на формі à мітка Label1}.

4. Розмістити кнопку під міткою {перетаскуючи мишею}, зменшити розмір вікна {мишею}.

5. Перейменувати кнопку на «Пуск», а мітку на «Перший додаток» {виділити на Form1 кнопку, перейти в Інспектор Об'єктів (якщо його немає на екрані – F11 чи File à View à Object Inspector), змінити властивість Caption (напис, заголовок)}.

6. Напис на мітці зробити жирним шрифтом {виділити мітку, у вікні Інспектор Об'єктів розкрити подвійним клацанням миші властивість Font (шрифт) à аналогічно – властивість Style (стиль) à встановити в True властивість fsBold (жирний)}.

7. Стерти текст у властивості Caption мітки, щоб він не висвічувався, поки користувач не натисне «Пуск». Текст на мітці повинний з'являтися тільки після натискання кнопки.

II. Кодування ( розробка підпрограми обробки події OnClick ).

8. Виділити кнопку на Form1 à Інспектор Об'єктів à відкрити сторінку подій Events à подвійне клацання мишею у вікні праворуч від імені події OnClick à перейшли у вікно Редактора Коду з текстом процедури (тобто оброблювач події):

 Procedure TForm1.Button1Click (Sender: TObject);

Клас форм ім'я компонента ім'я події (без префікса On)

Begin

Label1.Caption: =’Перший додаток’;

Мітка Заголовок

End ;

9.У вікні Редактора Коду вбудоване вікно Провідника (Дослідника) Коду. Його можна закрити.

10. Властивiсть Caption компонента Label1 змінена на текст “Пер-ший додаток” за допомогою метода - підпрограми обробки події - Procedure TForm1.Button1Click.

11. Якщо немає помилок Error і зауважень Warning, компілюємо додаток і виконуємо його {File à Run à Run чи F9}.

 

Контрольні питання.

1. Типи вікон Delphi.

2. Основні компоненти палітри.

3. Формування та конструювання форми.

4. Основні об'єкти форми.

5. Обробка події (Редактор Коду).

6. Провідник Коду.

7. Знавець Коду.

Захист програми паролем

Програміст може показати діалогове вікно з запитом пароля і блокувати виклик методу Application.Run, якщо введений користувачем пароль невірний. У наступному прикладі, у проекті використовуються дві форми: стандартна форма InputQuery і звичайна головна форма Form1. Форма InputQuery створюється при звертанні до однойменної функції, визначеної в модулі Dialogs. Вона являє собою невелике діалогове вікно з однорядковим текстовим полем Tedit і двома кнопками – OK і Cancel. У вікні користувач повинний ввести пароль (Delphi) і натиснути клавішу Enter.

 

program Password;

Uses

Forms,

Dialogs, // У цьому модулі визначена функція InputQuery

Until in ‘Unit1.pas’ {Form1};

{$R *.RES}

Var

Passwrd: String;

Begin    // Запитуємо пароль:

if InputQuery (‘Вікно введення пароля ’ , ‘ Введіть пароль: ‘ , Passwrd)

Then

if P asswrd = ‘Delphi’ then

begin // Все в порядку, пароль вірний

Application.CreateForm (Tform1, Form1);

Application.Run;

End else

ShowMessage ( ‘ Пароль не вірний! ’ ):

End.

Лабораторна робота N 4-5

Тема: Вивчення палітри компонентів.

Мета: Розробити додаток для виконання арифметичних операцій.

Хід роботи:

I . 1. Відкрити новий додаток.

2. Перенести на форму зі сторінки бібліотеки Standard компоненти :

Form1 _   X

 

 

Label1

Edit1

Label2

Edit2

Label3

Panel1

Button1

 

 

три мітки Label для написів у

послідовному порядку ;

два вікна редагування Edit;

панель Panel;

кнопку Button;

3. Замінити надписи в мітках {властивість

Caption} на наступні:

Наприклад: “ число1 “,” число2 “,”результат”,

надпис кнопки – “Розрахунок”.

4. Задати для міток жирний шрифт , а для кнопки – курсив.

5. Очистити властивість Caption у панелі.

6. Для властивості Text(текст) вікон редагування задати «1»- початкове зна-

чення тексту .

7. Змінити вид панелі:

основне поле - Bevellnner =BvRaised («опуклий»).

рамка – Bevelouter = BvLowered (»утоплений»)

8. У редакторі коду написати обробку події – клацання кнопки OnClick

Panel1.Caption:= Edit1.Text + ’ * ‘ + Edit2.Text + ’ = ’+

FloatToStr (StrToFloat (Edit1.text) * StrToFloat (Edit2.text));

9. Зберегти додаток {створити свій підкаталог (як папку Windows) :

{ File à Save all чи швидкими кнопками головного вікна}.

10. Зкомпілювати і виконати розроблений проект (додаток).

I I . Розробити проект згідно варіанта завдання для розрахунку :

 

1.Площі трикутника за сторонами А та В і кутом між ними α : S= ½ A*B*Sinα

2.Площі прямокутного трикутника за двома його катетами А та В : S=½ A*B

3.Площі рівностороннього трикутника за довжиною його сторони : S=√3/4 a2.

4.Площі трикутника за довжинами його сторін А, В та С за формулою Герона

S= √P∙ (P-A) ∙ (P-B) ∙ (P-C), де Р=½(А+В+С)

5.Площі трапеції за двома основами А та В і висотою Н : S=(А+В)*Н.

6.Довжини кола по заданому радіусу R : L=2πR.

7.Площі кругу по заданому радіусі R : S= πR2

8.Периметра Р і площі S прямокутника за його сторонами А та В

9.Сторону трикутника С за двома іншими сторонам А та В і кутом між ними :

C= А2+B2-2A*B*Cos β

10.Площі ромба за його діагоналями Н1 і Н2 : S=H1*H2

 

Контрольні питання :

1.Компоненти Edit і Panel, їх властивості.

2.Візуальні властивості «Вид».

3.Функції перетворення типів FloatToStr , StrToFloat (IntToStr, StrToInt).

4.Компіляція і виконання проекта (додатка).

5.Розширення файлів Delphi.

 


 Лабораторна робота № 6-7

 


Дата: 2019-05-29, просмотров: 145.