Object-oriented programming

Objectives and outcomes

Students acquire theoretical knowledge and practical skills in understanding and applying object-oriented
programming paradigm. They understand all key concepts of object-oriented programming and are able
to apply them. They are further capable of devising and implementing an object-oriented data model, as
well as developing a small application with a graphical user interface that uses files for reading and storing
data.

Lectures

Comparison between procedural and object-oriented programming. The concept of class and object,
attributes and operations. Built-in classes in Java programming language. The basic element of a UML
class diagram – classes and associations. The concept of constructor. Packages. Access modifiers for
attributes, operations and classes. JavaBean and encapsulation. Static elements. Lists and arrays in
Java. Relationships between classes. Singleton design pattern. Class inheritance and polymorphism.
Overriding methods and object class. Final keyword. Abstract classes and interfaces. Abstract classes
and interfaces in UML. Representation of an inheritance and implementation relationship in UML class
diagram. Overview of the well-known design patterns that apply abstraction and inheritance. Giving
examples of design patterns on UML class diagrams. Complex collections of objects. Nested classes.
Exceptions – catching, processing and throwing of exceptions. Overview of the library for developing
graphical user interface using object-oriented principles – overview of the components, connecting a data
model with a component, event handling, design patterns for GUI applications.

Practical classes

Using basic Java programming constructs on practical examples – branching, loops, primitive and
complex data types. Working with strings. Practicing examples and assignments for the purpose of
demonstrating all key concepts of object-oriented programming – classes, objects, attributes and
operations, constructors, access modifiers, static elements. Demonstration of abstraction, writing
abstract classes and interfaces and their inheritance or implementation. Implementation of the model
given as UML diagram including implementation of the classes, interfaces, relationships between
classes. Collections package, sorting of the collections. Working with exceptions. Implementation of the
GUI component. GUI events handling. Working with files in Java – reading and writing. Developing
complete GUI application using MVC (Model View Controller) design pattern.