https://www.w3schools.com/cpp/cpp_oop.as
Прашања:
2. Која е разликата помеѓу процедуралните и објектно ориетираните јазици?
3. Кој е првиот јазик кој вовел објекти и класи ?
4. Што е ООП? Кои се предностите на ооп во однос на процедуралното програмирање
5. Објасни го принципот "Don't Repeat Yourself" (DRY)
6. Што е класа, а што објект ? Примери за класа и објекти
7.
9. Атрибутите и методите се во основа променливи и функции кои припаѓаат на класата. Тие често се нарекуваат „членови на класата“. Објасни !
Процедурално / Објектно
Процедуралното програмирање
користи листа на инструкции за извршување одредена задача чекор по чекор. Се
темели на процедури. Познати се и како top-down јазици, односно процедурите се извршуваат редоследно одгоре надолу.
Процедуралнои јазици : Fortran, Cobol, C, Basic, Pascal
Првиот ОО јазик Simula ја воведува идејата за објекти, како збир на информации кои се третираат како единствен елемент.
На објектно-ориентирана програма може да се гледа како на колекција од кооперативни објекти, за разлика од вообичаениот модел, во којшто на програмата се гледа како на листа од задачи (потпрограми). Во ООП секој објект е способен да прими порака, обработи податок и да прати порака на друг објект и на него може да се гледа како на независна “машина“ со посебна улога или одговорност.
Основна разлика помеѓу процедурално и OOP програмирање:
🔹 Процедурално програмирање
Се темели на функции/процедури.Програмата е организирана како низа од чекори (инструкции).
Податоците и функциите се одделени.
Фокусот е на што треба да се изврши.
🔹 Објектно-ориентирано програмирање (OOP)
Се темели на објекти и класи.Податоците и методите се обединети во објекти.
Фокусот е на кој го извршува однесувањето.
Се базира на: енкапсулација, апстракција, наследување и полиморфизам.
📌 Суштинска разлика:
Процедуралното програмирање е ориентирано кон функции, додека OOP е ориентирано кон објекти (моделирање на реалниот свет преку објекти).
Наместо да размислуваме за кодот како низа од наредби, замислете дека градиме свет со „нешта“ (објекти).
Дискусија: Погледнете околу себе. Секој предмет е Објект. На пример, еден Автомобил.
Што поседува тој? (Боја, модел, брзина) — Ова се Податочни членки.
Што може да прави? (Забрзува, кочи, свири) — Ова се Функции-членки.
Вештачка интелигенција (AI) активност:
Отворете ChatGPT или друг AI четбот и напишете: „Опиши го објектот 'Паметен телефон' преку неговите карактеристики и акции како да си програмер.“ Споредете ги одговорите.
Класите го дефинираат објектот ( тие содржат атрибути и методи кои објектот треба да ги има). Токму затоа најнапред се креираат класи врз основа на кои се креираат објекти. Класа претставува нацрт (калап, модел, шаблон) на објект,што не наведува до заклучок дека клаите може да имаат повеќе објекти .
Koга е дефинирана класата, можеме да инстанцираме објекти ( ООП термин кој значи "креирани" ). Објектот е клучен концепт на ооп и нивната основна намена е приказ на објект од реалниот свет. Софтверските објекти се слични на објектите од реалниот свет.
Објекти кои содржат ист тип на податоци и одговараат на пораки на ист начин припаѓаат на иста фамилија објекти односно припаѓаат на иста класа. Во ООП примарниот концепт е класа, и произволен број објекти (од иста фамилија) може да се креираат користејќи ист модел/ нацрт/ шаблон. Класите за објектите се она што се нацртите за куќите – класа е план за градење на објект од таа класа. Исто како што може да се изградат многу куќи од еден нацрт, може да се инстанцираат многу објекти од една класа.
Нека е даден нацрт/план за автомобил. Нацртот не може да се вози – тоа значи и класата не може да се „вози“. Значи треба да се конструира автомобил за истиот да може да се вози , што значи дека мора да се креира објект од класата за да може да се извршуваат функциите на класата.
Што е Класа, а што Објект?
·
Класа: Нацрт-план или рецепт (пр. Рецепт за торта).
·
Објект: Конкретен пример направен според планот (пр.
Самата торта на масата).
Концептот на „Црна кутија“ vs. „Отворена кутија“
Ако имате далечинско за телевизор, дали треба да
знаете како се поврзани жиците внатре за да го смените каналот?“
· Дискусија: во програмирањето, класата е кутија.
· Јавен пристап (public): Тоа се копчињата на
далечинското кои се достапни за сите. Ако нешто е public, секој може да го види
и користи.
· Податочни членки: Тоа се карактеристиките (пр. боја на
далечинското).
· Функции-членки: Тоа се акциите (пр. копчето „Power“).
Пристап до elemenтите - членки на класа
За да пристапите до елементите
на класа , го користите операторот точка (.).
Акција | Код |
Креирање објект | ImeNaKlasa mojObjekt; |
Пристап до податок | mojObjekt.broj = 10; |
Повикување функција | mojObjekt.akcija(); |
a. во дефиницијата на класа - Inside
b. надвор од дефиницијата на класа – Outside.
public: // Access specifier
void myMethod() { // Method/function defined inside the class
cout << "Hello World!";
}
};
int main() {
MyClass myObj; // Create an object of MyClass
myObj.myMethod(); // Call the method
return 0;
}
class MyClass { // The class
public: // Access specifier
void myMethod(); // Method/function declaration
};
// Method/function definition outside the class
void MyClass::myMethod() {
cout << "Hello World!";
}
int main() {
MyClass myObj; // Create an object of MyClass
myObj.myMethod(); // Call the method
return 0;
}
Одговори на прашањата !!!
1. Што дефинираме со „Класа“ во C++?
) Конкретна вредност во меморијата.
Б) Кориснички дефиниран тип кој служи како „нацрт-план“ за објекти.
В) Само листа од функции без податоци.
А) Стрелка (->)
Б) Две точки (::)
В) Точка (.)
3. Што означува клучниот збор public: во дефиницијата на класата?
А) Дека членовите се достапни само во внатрешноста на класата.
Б) Дека членовите се достапни за користење надвор од класата (на пр. во main).
В) Дека класата е достапна на интернет.
4. Пронајди ја грешката во следниов код:
class Ucilnica {
public:
int brojNaUcenici;
}
|
Поим |
Опис |
|
Податочна членка |
Акција или однесување на
објектот |
|
Функција-членка |
Конкретна инстанца на
класата |
|
Објект |
Карактеристика или
променлива на класата |
Разгледај го примерот (за дома )

No comments:
Post a Comment