OOP
Object Oriented Programming
Objectives
Students should be able to:
- outline the fundamental concepts of OOP: objects, classes, inheritance and polymorphism;
- analyse how to structure a domain in classes;
- build class hierarchies using the notions of abstract class, abstract data type, and polymorphism;
- identify the importance of abstract classes and inheritance in the design of a program in object-oriented programming;
- use object programming languages to build secure, robust and extensible medium-scale programs;
- know established architectural solutions for the design of modular and scalable programs.
Program
- Introduction to Object Programming:
- modular application design;
- abstract types of data;
- Notion of Object in OOP:
- internal state, behavior and messages;
- encapsulation;
- Classes, class hierarchies and polymorphism;
- Simple inheritance, multiple inheritance and abstract classes;
- Unit Tests and Generic Programming;
- Design and analysis of applications: architectural patterns
Bibliography
- Java 8 POO + Construções Funcionais, F. Mário Martins, Editora FCA, Série Tecnologias de Informação, ISBN-978-972-722-838-6, 2017.
- Object Oriented Design with Applications G. Booch, Third Edition, Addison-Wesley Professional, ISBN 978-020-189-551-3, 2007.
- Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes & Michael Kölling, Sixth Edition, Pearson Education, ISBN 978-1-292-15904-1, 2016
- Java Program Design- Principles, Polymorphism, and Patterns, Edward Sciore, Apress Media, ISBN 978-1-4842-4142-4, 2019
- Fundamentals of Java Programming, Mitsunori Ogihara, Springer, ISBN 978-3-319-89490-4, 2018