Professional Documents
Culture Documents
5.Класи и објекти
5.Класи и објекти
Нашиот реален свет се состои од објекти (objects). Се што гледаме околу нас се
објекти: дрвја, птици, сонце, деца, куќи, риби, згради, планини, јаболка, автомобили, итн.
Некои објекти не се физички, како: прозорец на оперативниот систем Windows, датотека
запишана на диск, куќна адреса, филм, приказна, број, збор, буква, цифра, сметка во
банка, компјутерска програма, месец, ден во неделата, песна, итн.
Некои објекти се единствена неделива целина: буква, цифра, чаша, монета итн.
Повеќето објекти се составени од помали објекти: број (се состои од цифри), автомобил
(се состои од мотор, каросерија, седишта итн.), месец (се состои од денови).
Некои објекти се различни: птици, дрвја, филмови итн. Некои објекти се слични/,
гулаб, врапче, кокошка, штрк итн. бидејќи се птици. Затоа велиме дека птиците се посебна
група животни. Рибите, исто така се посебна група животни. За групите се користат
термините вид, тип, род или класа. На пример, велиме дека зимзелените дрвја се
посебен вид дрвја, џиповите се посебен тип автомобили. Мачките се посебен род
животни, додека лаптопите се посебна класа компјутери.
Во објектното програмирање се користи терминот класа. На пример, класа
Птици, класа Филмови, класа Триаголници итн.
Секој поединечен објект има свои карактеристики (атрибути).
Објектите кои припаѓаат на една класа имаат исти или слични карактеристики.
На пример:
Птиците имаат: две нозе, две крилја и клун.
Автомобилите имаат: марка, тип, моќност, тркала и седишта.
Прозорците на Windows имаат: тип, форма, големина, менија и копчиња.
Исто така, секој објект има едно или повеќе својства (способности) кои
овозможуваат одредени однесувања.
На пример:
Птиците: одат, летаат, пеат.
Автомобилите: мируваат, се движат, кочат.
Прозорците на Windows: се активни, неактивни, минимизирани.
Според однесувањето може да се одреди каков е тој објект т.е. каква е неговата состојба.
На пример, птицата е во состојба на летање, рибата е во состојба на пливање, прозорецот на
Windows е во активна состојба, процесорот е во состојба на чекање, тревата е во состојба
на растење, автомобилот без кочници е во лоша состојба, итн.
Од до сега реченото може да се заклучи дека секој објект има:
Идентитет т.е. претставува нешто посебно (според атрибутите),
Однесување (според неговите способности), и
Состојба (изразена со неговото однесување во тој момент).
1
Објектите со слични карактеристики и однесувања се од ист вид или од иста класа
(class). На пример, птиците се една класа (имаат исти карактеристики и слично
однесување), додека рибите се друга класа. Куќите се посебна класа објекти,
автомобилите се друга класа објекти итн.
Во некоја класа објекти има поткласи. Пример: Класа Училишта има поткласи:
ОсновниУчилишта и СредниУчилишта. Некоја поткласа може да има свои поткласи,
како на пример поткласата СредниУчилишта има поткласи: Гимназии и СтручниУчилишта.
Ваквиот распоред на класи се нарекува хиерархија на класи.
Програмирањето во кое се користат класи и објекти се нарекува Објектно
Ориентирано Програмирање (ООП). Со него се врши “пресликување” на реалниот свет во
компјутерска програма.
Пример: Машината за пишување се пресликува во компјутерска програма,
училишен дневник се пресликува во програма која претставува електронски училишен
дневник.
Училишта
Средни Основни
училишта училишта
Гимназии Стручни
Училишта
Слика 1. Хиерархиски приказ на класата училишта.
2
Животни
Род
Род Куче
Мачка
Домашна Домашно
Лав Тигар Волк
мачка куче
Геометриски
форми
Геометриски Геометриски
фигури тела
Објектите од една класа се слични, ама не се еднакви. Во една класа нема два
еднакви (идентични) објекти. Од ова произлегува дека секој објект е посебен т.е. има свој
идентитет, однесување и состојба.
Во програмските јазици класите можат графички да се претстават со класни
дијаграми.
4
Пример 2: Да се креира класа книга, а потоа 2 објекти од тој тип.
5
Пример 3: Да се креира класа правоаголник, а потоа 1 објект од тој тип за кој ќе се
пресмета плоштина и периметар.
6
Да се направи програма во која ќе се дефинира класата Pravoagolnik, во која ќе се декларираат две
променливи кои претставуваат атрибути на објектите од класата Pravoagolnik. Во класата се
дефинираат следните функции:
postavistrani() , која ќе ја користиме за поставување вредности на полињата (атрибутите) на
објект од класата Pravoagolnik. Во С++ и другите ООП јазици се користат посебни функции
за поставување (set) податоци на полињата на класата, наречени постави-функции или set-
функции. Листата на параметри на оваа функција е
(double stra, double strb) и се користи само за пренос на аргументите во полињата на
класата, при повик на функцијата. Тоа се прави со наредбите во телото на функцијата:
a=stra;
b=strb;
Потоа полињата стануваат променливи a и b и можат да се користат во сите функции на
класата.
Функција zemio() ја пресметува обиколката на правоаголникот и ја враќа со наредбата
return ob;
Функција zemip(),
Функција zemid().
7
8
Пример – Училиште.
9
Конструктор
10
Во функцијата main креираме два објекти. Секогаш кога креираме објект автоматски се
извршува конструкторот.
11
Користењето на конструктор со параметри е исто како и секоја друга функција.
Затоа се нарекува и конструкторска функција. При повик на конструктор со параметри,
треба да се совпаѓаат бројот, редоследот и типот на аргументите со параметрите во
дефиницијата на конструкторот.
12
Вредностите на членовите на објектот потоа може да се менуваат.
13
Може да креираме повеќе конструктори. Ќе креираме уште еден конструктор без
параметри. Потоа ќе креираме објект Book3, на кој нема да му дадеме параметри.
Неговата иницијализација ќе ја направи конструкторот без параметри.
Со повеќе конструктори на корисникот му даваме можност на повеќе начини да
креира објекти.
14
15
Во следниот пример, во класата училиште додаваме уште еден конструктор со два параметри:
string uciliste, string mesto.
16
Дефинирање на функциите членки надвор од класата
Функциите членки на класата може да се дефинираат и надвор од класата. Притоа,
во класата се наведува само прототипот на функцијата.
Прототип на функција се состои од нејзиното име, типот на повратната вредност и
листата на параметри.
На пример класата Uciliste ќе го има следниот облик:
17
18
Пример 2: Апликација со две класи и функции членки дефинирани надвор од
класите.
19
Функции како елементи на класата (Object functions)
Да креираме класа студент, конструктор кој ќе ни овозможи да ги иницијализираме
податоците во објектите и два објекти од класата студент.
20
Сакаме да провериме кои студенти имаат просек поголем од 8.5. За таа цел ќе ја
креираме функцијата soliden_student во класата.
21
Getters & Setters
Овие функции се важни во С++. Тие ни овозможуваат да го контролираме пристапот до различни
атрибути во класата. Ќе направиме класа филмови.
22
NR, но ништо не нè спречува да внесеме каква било вредност – Пр- “kuce”, и тоа ќе
биде отпечатено.
Ова може да се спречи со функциите GETERS & SETERS.
NR). Тоа го правиме со if наредба. Ако некој внесе некоректен податок, на rating му се
доделува вредност NR. На тој начин ние може да контролираме кои вредности ќе бидат
внесени како параметри на објектите.
Ние не може да ја печатиме вредноста на rating затоа што е private. Заради тоа ќе
дефинираме функција getRating која ќе враќа вредност на параметарот rating.
23
24