Programação Orientada a Objectos

Engenharia Informática
6 ECTS; 1º Ano, 2º Semestre, 28,0 T + 42,0 PL + 5,0 OT + 5,0 O

Docente(s)
- António Manuel Rodrigues Manso
- Paulo Alexandre Gomes dos Santos

Pré-requisitos
Conhecimentos básicos de programação.

Objetivos
1 - Resolver problemas computacionais utilizando o paradigma de programação orientada aos objectos;
2 - Desenvolver código funcional através da linguagem Java e das suas bibliotecas de classes;
3 - Conceber e programar aplicações com interfaces gráficas e com persistencia de dados;

Programa
1. Introdução à Programação Orientada por Objectos:
- Conceitos básicos fundamentais.
- Noção de classe e objeto.
- Programação na linguagem java.
2. Programação com classes:
- Definição de classes.
- Construtores e instanciação.
- Interface e Encapsulamento.
- Documentação e teste.
- Classes genéricas.
- Programação com classes de biblioteca.
- Definição de classes através de Agregação.
3. Herança:
- Hierarquias de herança
- Definição de classes através de herança
- Classes abstractas
- Polimorfismo
- Interfaces
4. Interfaces gráficas com o utilizados:
- Arquitetura MVC.
- Bibliotecas de interfaces gráficas.
- Interactividade e gestão de eventos.
5. Modelação com classes:
- Análise e desenho de software orientado por objectos.
- Diagramas de classes (UML)
- Gestão de situações de exceção
- Serialização e persistência de objetos

Metodologia de avaliação
Teórica (60%) - Exame escrito sem consulta. Mínimos de 7 valores em 20.
Prática (40%) - Dois testes práticos e um trabalho final.

Bibliografia
- Sierra, K. e Bates, B. (2003). Head First Java. EUA: O'Reilly
- Horstmann, C. e Cornell, G. (2003). Core Java Volume 1 - Fundamentals. (Vol. I). USA: Sun Microsystems
- Documentation, O. (0). The Java Tutorials.Acedido em1 de janeiro de 2017 em https://docs.oracle.com/javase/tutorial/

Método de interação
Aulas teóricas expositivas para apresentação dos conteúdos programáticos.
Aulas práticas laboratoriais para resolução de problemas e consolidação de conhecimentos utilizando o computador.

Software utilizado nas aulas
Netbeans e java