10
Објектно оријентисано програмирање Адриан Милаковић, сарадник у настави [email protected] слајдови за вежбе

Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Објектно оријентисано програмирање

Адриан Милаковић, сарадник у настави[email protected]

слајдови за вежбе

Page 2: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Објектно оријентисано програмирање

Процедурално програмирање Објектно оријентисано програмирање

Page 3: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Класе и објекти

зна за:

- име

- број живота

- муницију

- позицију

...

може да:

- се помери

- напуни муницију

- пуца

- буде погођен

...

структура понашање

КЛАСА ИГРАЧ

ОБЈЕКТИ ИГРАЧА

име: Марко

број живота: 5

муниција: 4

...

име: Ана

број живота: 4

муниција: 1

...

име: Милорад

број живота: 3

муниција: 9

...

Page 4: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Класе и објекти

пуцаиме: Марко

број живота: 5

муниција: 47

...

име: Марко

број живота: 5

муниција: 46

...

погођен

име: Ана

број живота: 4

муниција: 17

...

име: Ана

број живота: 3

муниција: 17

...

Page 5: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Задатак 1.

Написати класу на програмском језику C++која апстракује позицију на табли. Позиција сесастоји из реда (1 – 8) и колоне (А – H).

• Позицију је могуће исписати на стандардномизлазу.

• Позицију је могуће променити за једно пољелево, десно, горе или доле.

• Могуће је испитати да ли се позиција налази уистом реду или колони као и друга позиција.

Написати главни програм на програмскомјезику C++ који тестира функционалностикласе.

Page 6: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Статичка (stack) и динамичка (heap)зона меморије.

150

А

B

4

A

1

1000h

int broj;

char slovo;

Position p1;

Position p2;

Position* p;

H

1

1000h

Page 7: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Показивач this.

B

4

p1.print();

Position p1;

B

4

this

Position p1;

print:

Page 8: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Пренос по вредности и референци

A

5

A

1

this

A

1

Position p1;

Position p2;

Position other;

A

5

A

1

this

addr

Position p1;

Position p2;

Position& other;

Page 9: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Задатак 2. (домаћи)

Написати класу на програмском језику C++ зарад са датумима. Датум се састоји из дана,месеца и године.

• Датум је могуће исписати на стандардном излазу.

• Датум је могуће променити на следећи.

• Могуће је испитати да ли се један датум налазипре другог.

Написати главни програм на програмскомјезику C++ који тестира функционалностикласе.

Page 10: Објектно оријентисано програмирањеoop.etf.rs/vezbe/2. Klasa i objekat, Apstrakcija, Enkapsulacija.pdf · Објектно оријентисано

Задатак 3.

Написати класу на програмском језику C++ којаапстракује играча на табли. Играча описују име ипозиција на табли на којој се налази.

• Играч може да промени своју позицију за једнопоље лево, десно, горе или доле.

• Могуће је дохватити име играча.

• Могуће је дохватити позицију играча.

Написати главни програм на програмском језикуC++ који тестира функционалности класе. Програмкреира неколико играча и од корисника цикличнотражи да помера једног по једног играча. Усваком циклусу исписују се позиције свих играча.