Objektno orijentisano programiranje

Σχετικά έγγραφα
Објектно оријентисано програмирање

налазе се у диелектрику, релативне диелектричне константе ε r = 2, на међусобном растојању 2 a ( a =1cm

1.2. Сличност троуглова

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА МАТЕМАТИКА ТЕСТ

ТРАПЕЗ РЕГИОНАЛНИ ЦЕНТАР ИЗ ПРИРОДНИХ И ТЕХНИЧКИХ НАУКА У ВРАЊУ. Аутор :Петар Спасић, ученик 8. разреда ОШ 8. Октобар, Власотинце

Теорија електричних кола

7. ЈЕДНОСТАВНИЈЕ КВАДРАТНЕ ДИОФАНТОВE ЈЕДНАЧИНЕ

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Tестирање хипотеза. 5.час. 30. март Боjана Тодић Статистички софтвер март / 10

г) страница aa и пречник 2RR описаног круга правилног шестоугла јесте рац. бр. јесу самерљиве

Анализа Петријевих мрежа

6.2. Симетрала дужи. Примена

5.2. Имплицитни облик линеарне функције

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

КРУГ. У свом делу Мерење круга, Архимед је први у историји математике одрeдио приближну вред ност броја π а тиме и дужину кружнице.

ОБЛАСТИ: 1) Тачка 2) Права 3) Криве другог реда

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

СИСТЕМ ЛИНЕАРНИХ ЈЕДНАЧИНА С ДВЕ НЕПОЗНАТЕ

6.1. Осна симетрија у равни. Симетричност двеју фигура у односу на праву. Осна симетрија фигуре

6.3. Паралелограми. Упознајмо још нека својства паралелограма: ABD BCD (УСУ), одакле је: а = c и b = d. Сл. 23

6.5 Површина круга и његових делова

2.3. Решавање линеарних једначина с једном непознатом

Упутство за избор домаћих задатака

ЛИНЕАРНА ФУНКЦИЈА. k, k 0), осна и централна симетрија и сл. 2, x 0. У претходном примеру неке функције су линеарне а неке то нису.

3.1. Однос тачке и праве, тачке и равни. Одређеност праве и равни

2. Наставни колоквијум Задаци за вежбање ОЈЛЕРОВА МЕТОДА

Примена првог извода функције

Објектно орјентисано програмирање. Владимир Филиповић Александар Картељ

Аксиоме припадања. Никола Томовић 152/2011

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ПОВРШИНа ЧЕТВОРОУГЛОВА И ТРОУГЛОВА

8. ПИТАГОРИНА ЈЕДНАЧИНА х 2 + у 2 = z 2

Хомогена диференцијална једначина је она која може да се напише у облику: = t( x)

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

b) Израз за угиб дате плоче, ако се користи само први члан реда усвојеног решења, је:

предмет МЕХАНИКА 1 Студијски програми ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО ДРУМСКИ САОБРАЋАЈ II ПРЕДАВАЊЕ УСЛОВИ РАВНОТЕЖЕ СИСТЕМА СУЧЕЉНИХ СИЛА

Положај сваке тачке кружне плоче је одређен са поларним координатама r и ϕ.

Скупови (наставак) Релације. Професор : Рака Јовановић Асиситент : Јелена Јовановић

Први корак у дефинисању случајне променљиве је. дефинисање и исписивање свих могућих eлементарних догађаја.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

4. Троугао. (II део) 4.1. Појам подударности. Основна правила подударности троуглова

2. EЛЕМЕНТАРНЕ ДИОФАНТОВЕ ЈЕДНАЧИНЕ

РЕШЕЊА ЗАДАТАКА - IV РАЗЕД 1. Мањи број: : x,

ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

Семинарски рад из линеарне алгебре

Количина топлоте и топлотна равнотежа

2.1. Права, дуж, полуправа, раван, полураван

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

Вектори vs. скалари. Векторске величине се описују интензитетом и правцем. Примери: Померај, брзина, убрзање, сила.

1. 2. МЕТОД РАЗЛИКОВАЊА СЛУЧАЈЕВА 1

7.3. Површина правилне пирамиде. Површина правилне четворостране пирамиде

10.3. Запремина праве купе

4.4. Паралелне праве, сечица. Углови које оне одређују. Углови са паралелним крацима

TAЧКАСТА НАЕЛЕКТРИСАЊА

МАТРИЧНА АНАЛИЗА КОНСТРУКЦИЈА

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

МАТЕМАТИЧКИ ЛИСТ 2017/18. бр. LII-3

Једна од централних идеја рачунарства Метода која решавање проблема своди на решавање проблема мање димензије

I Тачка 1. Растојање две тачке: 2. Средина дужи y ( ) ( ) 2. II Права 1. Једначина прамена правих 2. Једначина праве кроз две тачке ( )

ТАНГЕНТА. *Кружница дели раван на две области, једну, спољашњу која је неограничена и унутрашњу која је ограничена(кружницом).

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

8.2 ЛАБОРАТОРИЈСКА ВЕЖБА 2 Задатак вежбе: Израчунавање фактора појачања мотора напонским управљањем у отвореној повратној спрези

Решења задатака са првог колоквиjума из Математике 1Б II група задатака

ЗБИРКА РЕШЕНИХ ЗАДАТАКА ЗА ПРИЈЕМНИ ИСПИТ ИЗ МАТЕМАТИКЕ

Факултет организационих наука Центар за пословно одлучивање. PROMETHEE (Preference Ranking Organization Method for Enrichment Evaluation)

Скрипта ријешених задатака са квалификационих испита 2010/11 г.

Објектно орјентисано програмирање. Владимир Филиповић Александар Картељ

АНАЛИТИЧКА ГЕОМЕТРИЈА. - удаљеност између двије тачке. 1 x2

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

6. ЛИНЕАРНА ДИОФАНТОВА ЈЕДНАЧИНА ах + by = c

Ваљак. cm, а површина осног пресека 180 cm. 252π, 540π,... ТРЕБА ЗНАТИ: ВАЉАК P=2B + M V= B H B= r 2 p M=2rp H Pосн.пресека = 2r H ЗАДАЦИ:

У н и в е р з и т е т у Б е о г р а д у Математички факултет. Семинарски рад. Методологија стручног и научног рада. Тема: НП-тешки проблеми паковања

ЗАШТИТА ПОДАТАКА. Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

РЕШЕНИ ЗАДАЦИ СА РАНИЈЕ ОДРЖАНИХ КЛАСИФИКАЦИОНИХ ИСПИТА

Динамика. Описује везу између кретања објекта и сила које делују на њега. Закони класичне динамике важе:

МАТЕМАТИЧКИ ЛИСТ 2016/17. бр. LI-4

Теорија друштвеног избора

УНИВЕРЗИТЕТ УНИОН РАЧУНАРСКИ ФАКУЛТЕТ

Дух полемике у филозофији Јован Бабић

Слика 1. Слика 1.2 Слика 1.1

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЗБИРКА РИЈЕШЕНИХ ЗАДАТАКА ИЗ МАТЕМАТИКЕ ЗА ПРИЈЕМНИ ИСПИТ

Ротационо симетрична деформација средње површи ротационе љуске

F( x) НЕОДРЕЂЕНИ ИНТЕГРАЛ

Теорија одлучивања. Циљеви предавања

Математика Тест 3 Кључ за оцењивање

Предмет: Задатак 4: Слика 1.0

Теорија електричних кола

Мастер рад. Гребнерове базе. Аутор: Јелена Јовичић Број индекса: 1033/2008. Ментор: Доцент др Зоран Петровић. Математички факултет Београд 2010.

ПРИЈЕМНИ ИСПИТ. Јун 2003.

Универзитет у Београду, Саобраћајни факултет Предмет: Паркирање. 1. вежба

< < < 21 > > = 704 дана (15 бодова). Признавати било који тачан. бодова), па је тражена разлика 693 (5 бодова), а тражени збир 907(5

ВОЈИСЛАВ АНДРИЋ МАЛА ЗБИРКА ДИОФАНТОВИХ ЈЕДНАЧИНА

Cook-Levin: SAT је NP-комплетан. Теодор Најдан Трифунов 305M/12

Штампарске грешке у петом издању уџбеника Основи електротехнике, 1. део, Електростатика

L кплп (Калем у кплу прпстпперипдичне струје)

Transcript:

Matematički fakultet, Univerzizet u Beogradu Katedra za računarstvo i informatiku Objektno orijentisano programiranje vežbe školska 2016/ 2017 Biljana Stojanović Nemanja Mićović Nikola Milev

1 Наслеђивање класа * Концепт наслеђивања је врло битан сегмент објектно оријентисаног програмирања. Наслеђивање је поступак којим се из постојећих праве (изводе) нове класе. Нова класа зове се изведена или поткласа, док је постојећа класа базна или суперкласа. Нова и постојећа класа налазе се у специфичном односу. Хијерархија наслеђивања може бити произвољне дубине (из изведене класе могу се даље изводити нове класе). Зашто изводимо класе из постојећих? Главни циљ нам је да решимо неки проблем. Наравно, имаћемо класе и објекте јер Јава без тога не може. Објекти могу бити нешто апстрактно (тачке, кругови, дужи), а могу бити и нешто опипљивије (животиње, мачке, буве). Може постојати и некаква хијерархија међу објектима и класама са којима се ради. Нпр. можемо имати класу Povrs и класе Pravougaonik, Kvadrat, Krug... И јасно је да је правоугаоник површ, као и квадрат и круг... Или нпр. ако имамо класе Zivotinja, Macka, Pas, опет: мачка је животиња, пас је такође животиња итд. Мачка ЈЕ животиња. То значи да има сва својства животиње (све податке (атрибуте) и понашања заједничка за све животиње). Али мачка има и нешто више од тога, нешто што је својствено само мачкама, због чега је издвојена у посебну животињску врсту (нпр. мачке преду...). У таквим ситуацијама, када су објекти двају или већег броја класа на неки начин специјализација објеката једне класе, природно је да та класа буде базна, а да се ове остале изведу из ње. У базној класи треба да се нађу атрибути и методи заједнички за објекте свих изведених класа, док у изведене класе треба сместити оно по чему се њихови објекти међусобно разликују. Како рећи да је једна класа изведена из друге? То се чини кључном речју extends која се наводи у првом реду дефиниције класе. Нпр. public class Krug extends Povrs {... } Овде се каже да је класа Krug изведена из класе Povrs. То, даље, значи да ће сваки објекат класе Krug, поред атрибута који се налазе у дефиницији те класе, садржати и све атрибуте дефинисане у базној класи Povrs. Ипак, атрибути дефинисани у базној класи не морају увек бити доступни методима изведене класе. Посебно је важно нагласити да је приликом прављења објекта изведене класе (Krug) неопходно извршити иницијализацију и тих атрибута базне класе (Povrs) који су присутни у објекту изведене класе. Наслеђени чланови Код наслеђивања се уводи и појам тзв. наслеђених чланова базне класе. То нису сви чланови (атрибути и методи) базне класе, иако су сви они присутни у објекту изведене класе. Чланови базне класе који су доступни унутар изведене класе су наслеђени чланови. Они који нису наслеђени су и даље део објеката изведене класе. * Укључује и садржај из материјала Марије Милановић

Kaда се базна и изведена класа налазе у истом пакету, не наслеђују се само они чланови који су у базној класи дефинисани са приступним атрибутом private. Ако се, пак, базна и изведена класа налазе у различитим пакетима, неће бити наслеђени ни они чланови базне класе који имају пакетно право приступа. Дакле, public и protected чланови базне класе наслеђују се увек, без обзира на размештај класа по пакетима. A шта добијемо када наследимо неки члан базне класе? То је као да се дефиниција тог члана налази у дефиницији изведене класе. Практично, наслеђеном члану базне класе можемо приступати навођењем само његовог имена. Он је равноправан са члановима који су дефинисани у самој изведеној класи. Одавде, између осталог, следи: како нам, по правилу, атрибути класа (што ће се односити и на базну) имају приступни атрибут private, они нису наслеђени чланови базне класе. За њихову иницијализацију користи се позив конструктора базне класе на начин који ће ускоро бити описан, док ако су нам у изведеној класи потребне њихове вредности, морамо их дохватити позивом одговарајућих метода get*() базне класе. Скриверни чланови класе Може се (случајно) десити да постоји атрибут са истим именом и у базној и у изведеној класи (тип и приступни атрибут у овој причи нису од значаја). Тада је атрибут базне класе скривен истоименим атрибутом изведене класе. Навођењем само имена атрибута обраћамо се атрибуту изведене класе. Да бисмо реферисали истоимени наслеђени атрибут базне класе, морамо његово име квалификовати кључном речју super. Ово није пожељан приступ при дефинисању атрибута изведене класе. Препорука је да се њихова имена разликују од оних из базне класе.

Наслеђивање метода Методи базне класе (са изузетком конструктора) наслеђују се по истом принципу као и атрибути. Конструктори базне класе никада се не наслеђују! То значи да их у конструктору изведене класе не можемо звати на начин на који то чинимо нпр. у тест-класи (навођењем њиховог имена и листе аргумената унутар пара облих заграда). Али то не значи да их не можемо звати уопште. Штавише, приликом прављења сваког новог објекта изведене класе НЕОПХОДНО ЈЕ У КОНСТРУКТОРУ ИЗВЕДЕНЕ ПОЗВАТИ КОНСТРУКТОР БАЗНЕ КЛАСЕ, који ће извршити иницијализацију атрибута базне класе присутних у објекту изведене класе. Ако не позовемо конструктор базне класе из конструктора изведене, компајлер ће покушати то да уради за нас. Позив конструктора базне класе у конструктору изведене врши се помоћу кључне речи super као имена метода и то мора да буде прва наредба у телу конструктора изведене класе. Ако то није случај, компајлер ће имплицитно убацити позив подразумеваног конструктора базне класе: super(); а уколико подразумевани конструктор не постоји у базној класи, то ће резултовати грешком при компајлирању. Дакле, прва наредба у телу конструктора изведене класе је УВЕК позив конструктора базне класе (имплицитни позив подразумеваног конструктора од стране преводиоца или одговарајући експлицитни позив). Ако се позива конструктор базне класе различит од подразумеваног, наводи се и одговарајући број аргумената у складу са дефиницијом конструктора: super(...); Пример 1 (paket nasledjivanje, klase Povrs, Krug): Класа Krug наслађује само методе getcentar() i tostring() из класе Povrs, јер се конструктори, копиконструктор и private инстанцна променљива (нестатички атрибут) centar не наслеђују. Иако се променљива centar не наслеђује, она јесте део објекта изведене класе, па мора бити адекватно иницијализована: 1. у конструктору класе Krug позивом конструктора базне класе 2. у копи-конструктору класе Krug позивом копи-конструктора базне класе (који мора да постоји) или позивом конструктора базне класе У другом случају, пошто је копи-конструктор базне класе дефинисан тако да му је аргумент типа базне класе (Povrs), као стварни аргумент, приликом позива, може да му се проследи референца на објекат типа Povrs, али и на објекат произвољне поткласе класе Povrs (а самим тим и класе Krug која је из ње изведена). Варијанта са конструктором захтева да у базној класи постоје дефинисани public методи get*() за сваку private инстанцну променљиву (у овом случају метод getcentar() за променљиву centar). Кастовање Када се копи-конструктору базне класе Povrs проследи референца на објекат класе Krug (или било које друге поткласе), врши се кастовање у базни тип Povrs. Кастовање представља објекат као да је неког другог типа. Могуће је кастовати објекат у тип (директне или индиректне) наткласе или поткласе, дакле само навише и наниже кроз неку хијерархију класа. Кастовање навише врши се имплицитно (компајлер га убацује сâм, када је потребно). Управо се то дешава у примеру са позивом копи-конструктора базне класе Povrs.

Пример 2 (paket nasledjivanje2, klase Povrs, Krug, Pravougaonik, Kvadrat): Час 5: Наслеђивање у програмском језику Јава. Класи Povrs додати су подразумевани конструктор, public методи povrsina()и rastojanjedocentra(povrs), који ће заједно са методима getcentar() i tostring() бити наслеђени у изведеним класама. Из класе Povrs изведена је још једна класа, Pravougaonik, а из ње класа Kvadrat. Метод povrsina()није дефинисан у базној класи (враћа вредност 0), јер се површина рачуна различито за различите типове површи. У изведеним класама је адекватно предефинисан, за круг по формули P=r 2 π, а за правоугаоник по формули P=а*b. Метод rastojanjedocentra(povrs)рачуна растојање од центра текуће до центра дате површи. Параметар метода је типа базне класе Povrs, те ће као стварни аргумент моћи да се проследи референца на објекат типа Povrs, али и референца на објекат произвољне изведене класе (Krug, Pravougaonik, Kvadrat), при чему се онда врши имплицино кастовање навише. У класи Pravougaonik дефинисан је и метод dijagonala(), за рачунање дијагонале текућег правоугаоника, као и метод opisanikrug(), који прави и враћа круг описан око правоугаоника. Ови методи ће бити наслеђени у класи Kvadrat, јер су декларисани као public и нема потребе да се предефинишу у тој класи, јер се понашају исто и за квадрате. Класа Kvadrat нема додатних нестатичких атрибута, јер квадрат је правоугаоник где су странице a и b једнаке дужине. Неопходно је једино да се дефинишу констуктори и да се предефинише метод tostring(). Приступ ненаслеђеним члановима базне класе у изведеној класи Методи базне класе који су наслеђени у изведеној класи (имају атрибут приступа различит од private или су без атрибута приступа у базној класи) могу да приступе свим члановима базне класе унутар изведене класе, чак и онима који нису наслеђени. 2 Predefinisanje (overriding) metoda bazne klase Mоже се дефинисати метод у изведеној класи који има исти потпис као и неки метод базне класе. Претпоставка је да су нама, као и обично, методи у класама public, па ће ова прича важити. Иначе, прича важи када приступни атрибут метода у изведеној класи није рестриктивнији од приступног атрибута метода базне класе који има исти потпис. Када позовемо метод просто навођењем његовог имена, позиваће се метод изведене класе, а ако желимо да позовемо базну верзију метода, морамо користити кључну реч super. Пример: Метод tostring() класе Krug предефинише метод tostring() класе Povrs, који се може позвати у облику super.tostring() како би се генерисала String-репрезентација базног дела круга.

Избор приступних атрибута за чланове базне класе Час 5: Наслеђивање у програмском језику Јава. методе који чине спољни интерфејс класе треба декларисати као public. Све док нису предефинисани у изведеној класи, биће у њој доступни директно преко свог имена (иначе им се приступа преко super) препорука је да се инстанцне променљиве (нестатички атрибути) декларишу као private, а да се обезбеде public методи за приступ и измену константни атрибути (статички или нестатички) могу да буду public ако су намењени некој општој употреби protected чланови се најчешће користе у пакетима класа са неограниченим приступом свим члановима из истог пакета, при чему је приступ ван пакета ограничен на поткласе 3 java.lang.object универзална суперкласа Уколико се експлицитно не наведе да је класа изведена из неке друге, подразумева се да је изведена из класе java.lang.object, тако да је Object директна или индиректна суперкласа сваке друге класе. Тиме се обезбеђује да класе које дефинишемо наслеђују чланове класе Object. За сада је од значаја public метод tostring(), који враћа стринг-репрезентацију објекта, и о коме је било речи и раније. Подсећања ради, стринг-репрезентација се генерише у подразумеваном облику: <puno_kvalifikovano_ime_klase>@<hash_code_objekta(heksadekadno)> Пуно квалификовано име класе укључује и име пакета коме класа припада. О хеш кодовима објеката ће бити речи у наставку курса. Ради се о вредности која се генерише на основу вредности референце објекта позивом одговарајућег метода (hashcode()). Поред метода tostring(), размотрићемо и public методе equals(), hashcode() и getclass(). Документација је доступна на адреси: https://docs.oracle.com/javase/8/docs/api/java/lang/object.html

4 Задаци за вежбу 1. Написати базну класу Zivotinja која садржи један нестатички атрибут vrsta, који представља врсту којој животиња припада. Атрибут декларисати тако да приступ ван класе буде онемогућен. Обезбедити: подразумевани конструктор (вредност атрибута vrsta поставља се на nepoznata ) конструктор који очекује све потребне аргументе копи-конструктор метод за прављење стринг-репрезентације; нпр ако је врста пас, у облику: "Ovo je pas" Написати изведену класу Pas која од атрибута додатно садржи име пса и његову расу. Атрибут декларисати тако да приступ ван класе буде онемогућен. Обезбедити: конструктор који очекује један аргумент (име пса), а расу поставља на подразумевану вредност sarplaninac конструктор који очекује све потребне аргументе копи-конструктор метод за прављење стринг-репрезентације; нпр у облику: "Ovo je pas Lesi, sarplaninac" Написати тест класу TestZivotinje и у њој направити објекте класе Pas (коришћењем оба конструктора), исписати податке о њима и позвати метод за оглашавање пса. Направити и копију једног од објеката и исписати његове податке, као и начин његовог оглашавања. 2. У претходном задатку потребно је урадити следеће: а) допунити дефиницију изведене класе Pas методом за оглашавање пса: public void oglasise() који исписује како се пас оглашава (нпр. "AV AV") б) Написати класу Macka изведену из класе Zivotinja која од атрибута додатно садржи име мачке и њену расу. Атрибут декларисати тако да приступ ван класе буде онемогућен. Обезбедити: конструктор који очекује један аргумент (име мачке), а расу поставља на подразумевану вредност persijska конструктор који очекује све потребне аргументе копи-конструктор метод за прављење стринг-репрезентације; нпр у облику: "Ovo je macka Srecko, sijamska" метод за оглашавање мачке public void oglasise() који исписује како се мачка оглашава (нпр. "MIJAUUU") в) Написати класу Pudlica изведену из класе Pas која нема никакве додатне атрибуте и методе. Једино што је потребно дефинисати јесте одговарајући конструктор и копи-конструктор. Тест класу допунити прављењем једног објекта класе Macka и једног објекта класе Pudlica, исписати податке о њима и позвати метод за њихово оглашавање.