Programação Orientada a Objetos
Objetivos
Os alunos deverão ser capazes de:
- enunciar os conceitos fundamentais da PPO: objectos, classes, herança e polimorfismo;
- analisar a estruturação de um domínio em classes;
- construir hierarquias de classes utilizando as noções de classe abstracta, tipo abstracto de dados e polimorfismo;
- identificar a importância das classes abstractas e herança na concepção de um sistema em programação por objectos;
- utilizar linguagens de programação por objectos para construção de programas de média escala, seguros, robustos e extensíveis;
- conhecer soluções arquitecturais estabelecidas para a concepção de programas modulares e escaláveis.
Programa
- Introdução à Programação por Objectos:
- concepção modular de aplicações;
- tipos abstractos de dados;
- Noção de Objecto em POO:
- estado interno, comportamento e mensagens;
- encapsulamento;
- Classes, hierarquias de classes e polimorfismo;
- Herança simples, herança múltipla e classes abstractas;
- Testes Unitários e Programação Genérica;
- Concepção e análise de aplicações: padrões arquitecturais.
Bibliografia
- 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