Object Oriented Programming (271136)

Learning Outcomes

The goal of this Curricular Unit is to present the basic concepts of object oriented programming (OOP) paradigm. Using Java as a tool to develop concrete programming examples, the Student will be presented with theoretical contents, and practical exercises/challenges, through which she/he will become familiarized with concepts such as encapsulation, inheritance, polymorphism, interfaces, composition, instantiation, etc. The differences between the OOP and the procedural / imperative paradigms will be emphasized.

Also, the Student will learn to take advantage of the aid provided by modern IDEs, such as Netbeans, or Eclipse.

Study Program

  • Object Oriented Programming (OOP): Motivation and historical perspective
  • General principles and basic concepts of OOP
  • Inheritance and polymorphism
  • Overloading and overriding
  • Composition vs. Inheritance (“has a” vs “is a”)
  • Exception treatment in Java
  • Interface based programming
  • Event driven programming
  • Programming with generic types



Martins, F. M. (2017). Java 8: POO + Construções Funcionais. Lisboa: FCA. ISBN: 978-972-722-838-6;
Martins, F.M. (2009). Java 6 e Programação Orientada pelos Objectos. Lisboa: FCA. ISBN: 978-972-722-624-5;
Martins, F.M. (2014). Projetos de POO em Java. Lisboa: FCA. ISBN: 978-972-722-792-1.