Programação Orientada pelos Objetos (2017/2018) - Departamento de Informática
Descrição

Esta disciplina desenvolve o estudo dos principais conceitos da programação orientada ao objecto, para alunos que já tiveram uma exposição inicial à definição e utilização de classes. Introduz algumas problemáticas da concepção com classes e objectos, exemplificadas através de representações diagramáticas, dando ênfase à polimorfia de interfaces, de herança e paramétrica. Insiste na resolução de problemas de programação suportada na reutilização de bibliotecas de classes, em particular as que suportam a manipulação de colecções, a construção de interfaces gráficas e o tratamento de excepções. Desenvolve o estudo de algoritmos e introduz a questão da avaliação da sua eficiência, por via da selecção das colecções apropriada para o problema em análise. Aborda de forma preliminar alguns tópicos de engenharia de software como os testes de regressão, a geração de código a partir de modelos, a refabricação e a documentação de interfaces do programador (APIs).

Objectivos

Saber:

Saber fazer:

Competências Complementares:

Programa

1. Especificação de interfaces e respetiva documentação
2. Conceção de programas estruturados em classes
3. Polimorfia de interfaces
4. Herança de classes
5. Polimorfia de herança
6. Asserções
7. Testes
8. Tratamento de excepções
9. Programação genérica
10. Utilização de tipos genéricos e colecções

Bibliografia Principal

1. Cay Horstmann, Java Concepts: for Java 7 and 8, Sixth Edition, Wiley, 2010.

2. F. Mário Martins, Java 8 - POO + Construções Funcionais, FCA, 2017.

3. Slides de Programação Orientada pelos Objectos (disponibilizados gradualmente na página moodle)

4. David J. Eck, Introduction to Programming Using Java, Seventh edition, 2016.


Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais   26.0
Aulas teóricas   42.0
Avaliação   5.0
Estudo   50.0
Projectos e trabalhos   130.0
Total de Horas 253
ECTS 9.0