Object Oriented Programming

Objectives

Students should be able to:

  1. outline the fundamental concepts of OOP: objects, classes, inheritance and polymorphism;
  2. analyse how to structure a domain in classes;
  3. build class hierarchies using the notions of abstract class, abstract data type, and polymorphism;
  4. identify the importance of abstract classes and inheritance in the design of a program in object-oriented programming;
  5. use object programming languages to build secure, robust and extensible medium-scale programs;
  6. know established architectural solutions for the design of modular and scalable programs.

Program

  1. Introduction to Object Programming:
    • modular application design;
    • abstract types of data;
  2. Notion of Object in OOP:
    • internal state, behavior and messages;
    • encapsulation;
  3. Classes, class hierarchies and polymorphism;
  4. Simple inheritance, multiple inheritance and abstract classes;
  5. Unit Tests and Generic Programming;
  6. Design and analysis of applications: architectural patterns

Bibliography

  1. 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.
  2. Object Oriented Design with Applications G. Booch, Third Edition, Addison-Wesley Professional, ISBN 978-020-189-551-3, 2007.
  3. 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
  4. Java Program Design- Principles, Polymorphism, and Patterns, Edward Sciore, Apress Media, ISBN 978-1-4842-4142-4, 2019
  5. Fundamentals of Java Programming, Mitsunori Ogihara, Springer, ISBN 978-3-319-89490-4, 2018

Updated: