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

Циљ и исход предмета

Усвајање теоретског знања и практичних вештина за разумевање и коришћење објектно-оријентисане парадигме програмирања. Студент разуме све кључне концепте објектно-оријентисаног програмирања и уме да их примени, способан је да осмисли и имплементира објектно-оријентисани модел података и да имплементира мању апликацију са графичким корисничким интерфејсом уз коришћење фајлова за читање и упис података.

Теоријска настава

Процедурално наспрам објектно-оријентисаног програмирања. Појам класе и објекта, атрибута и операција. Уграђене класе у програмском језику Java. Основни елементи UML дијаграма класа - класе и везе асоцијације. Појам конструктора. Пакети. Видљивост атрибута, операција и класа. Јавабин и енкапсулација. Статик елементи. Листе и низови у Javi. Везе између класа. Синглтон дизајн патерн. Наслеђивање класа и полиморфизам. Надјачавање метода и класа Object. Кључна реч финал. Апстрактне класе и интерфејси. Апстрактне класе и интерфејси на UML дијаграму класа. Представљање везе наслеђивања и имплементације интерфејса на дијаграму класа. Преглед познатих дизајн патерна који користе апстракцију и наслеђивање. Приказ једноставнијих дизајн патерна на UML дијаграму класа. Сложеније колекције објеката. Угњеждене класе. Изузеци - хватање, обрада и испаљивање изузетка. Преглед библиотеке за развој графичког корисничког интерфејса коришћењем принципа објектно-оријентисаног програмирања - преглед компоненти, везивање модела података за компоненту, обрада догађаја, дизајн патерни за апликације са графичким корисничким интерфејсом.

Практична настава

Коришћење основних програмских конструкција у програмском језику Java на практичним примерима - гранање, петље, основни и сложени типови података. Рад са стринговима. Илустративни примери и задаци за илустрацију свих основних концепата објектно-оријентисаног програмирања-класе, објекти, атрибути и операције, конструктори, видљивост, статик елементи. Илустративни примери за приказ апстракције, писање апстрактних класа и интерфејса и њихово наслеђивање односно имплементација. Имплементација модела датог UML дијаграмом класа, укључујући имплементацију класа, интерфејса, веза између класа. Пакет за рад са колекцијама, сортирање колекција. Рад са изузецима. Имплементација компоненти графичког корисничког интерфејса. Имплементација обраде догађаја на корисничком интерфејсу. Рад са фајловима - читање и упис у фајл. Имплементација комплетне апликације са графичким корисничким интерфејсом коришћењем MVC (Model View Controller) дизајн патерна.