Objetivos

Os alunos deverão ser capazes de:

  1. enunciar os conceitos fundamentais da PPO: objectos, classes, herança e polimorfismo;
  2. analisar a estruturação de um domínio em classes;
  3. construir hierarquias de classes utilizando as noções de classe abstracta, tipo abstracto de dados e polimorfismo;
  4. identificar a importância das classes abstractas e herança na concepção de um sistema em programação por objectos;
  5. utilizar linguagens de programação por objectos para construção de programas de média escala, seguros, robustos e extensíveis;
  6. conhecer soluções arquitecturais estabelecidas para a concepção de programas modulares e escaláveis.

Programa

  1. Introdução à Programação por Objectos:
    • concepção modular de aplicações;
    • tipos abstractos de dados;
  2. Noção de Objecto em POO:
    • estado interno, comportamento e mensagens;
    • encapsulamento;
  3. Classes, hierarquias de classes e polimorfismo;
  4. Herança simples, herança múltipla e classes abstractas;
  5. Testes Unitários e Programação Genérica;
  6. Concepção e análise de aplicações: padrões arquitecturais.

Bibliografia

  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

Atualizado: