Programação Orientada por Objetos
-
Conhecimentos de Base Recomendados
Conhecimentos básicos de programação e, em particular de programação orientada por objetos. É necessário conhecer neste último tópico os seguintes conceitos: classes, objetos, atributos, métodos, composição de classes e coleções básicas
-
Objetivos
Compreender e aplicar os conceitos avançados da programação orientada por objetos com base na linguagem Java.
Aplicar os conceitos avançados da programação orientada por objetos usando a linguagem Java.
Saber desenhar soluções aplicacionais de acordo com o paradigma orientado por objetos.
No final da unidade curricular, o aluno deverá saber como analisar um problema, modelar uma solução usando técnicas simples, escrever testes unitários da solução proposta e implementar a solução. Esta solução deve integrar conceitos avançados de programação orientada a objetos e diferenets coleções do Java. -
Métodos de Ensino
Aulas teórico-práticas
- As aulas TP são lecionadas de forma presencial. Serão também disponibilizados os slides, o código dos exemplos usados nas várias sessões e a resolução dos exercícios.
- Durante o período das aulas o docente estará disponível para responder a dúvidas.
- Mês a mês, serão disponibilizados testes de moodle sobre a matéria lecionada nessa semana para que os alunos possam fazer avaliações formativas.
Aulas de laboratório (com resolução em computador de pequenos programas)- Semanalmente serão disponibilizados os enunciados dos laboratórios que os alunos deverão resolver usando as aplicações apropriadas e que estão descritas na ficha de UC.
- Os trabalhos de laboratório são efetuados em grupos de dois alunos, podendo, em situações justificadas, ser realizados individualmente.
- Todos os trabalhos realizados devem ser submetidos na plataforma Github Classroom durante a aula, através do link disponibilizado para este efeito.
- Durante o período das aulas o docente estará disponível para responder a dúvidas e dar apoio à resolução do laboratório.
Projetos- Serão realizados dois projetos. O acompanhamento será feito durante alguns laboratórios e remotamente pelo professor do laboratório.
-
Estágio(s)
Não
-
Programa
Conceitos Avançados da Programação Orientada por Objetos
- Revisão dos conceitos básicos de POO.
- Herança de classes. Hierarquia de classes e construtores em herança. Redefinição de métodos.
- Bibliotecas hierárquicas de classes e classes base fundamentais.
- Principio da substituição e polimorfismo. Ligação de métodos estática e dinâmica (static e dynamic binding)
- Classes abstractas. Métodos abstratos.
- Interfaces. Hierarquia de interfaces.
- Desenho de aplicações.
- Genéricos e conceitos complementares de coleções.
- Tratamento de erros e exceções.
- Entrada e saída de dados. Serialização.
- Gestão de versões.
- Desenvolvimento baseado em testes.
Aplicação dos conceitos avançados da Programação Orientada por Objetos
- Introdução aos padrões de desenho.
- Introdução à utilização de interfaces gráficas utilizando JavaFX.
- Programação por eventos. Propriedades
- Controlos básicos e avançados.
- Janelas e formas
- Efeitos e animações -
Demonstração de conteúdos
-
-
Demonstração da metodologia
-
-
Docente(s) responsável(eis)
Luís Manuel Dias Damas - 2.º Semestre
-
Bibliografia
Carl DeaGerrit GrunwaldJosé PeredaSean PhillipsMark Heckler; JavaFX 9 by Example, APress, 2019. ISBN: 978-1-4842-1961-4
David Barnes & Michael Kölling; Objects First with Java (6th Edition), Pearson Education Limited, 2016. ISBN: 9781292159089
F. Mário Martins; JAVA 8 - POO + Construções Funcionais, FCA, 2017. ISBN: 978-972-722-838-6
https://openjfx.io/openjfx-docs/; Getting Started with JavaFX
Detalhes do curso
-
Código
INF32150
-
Modo de Ensino
PRESENCIAL
-
ECTS
6.0
-
Duração
Semestral
-
Horas
30h Práticas e Laboratórios
45h Teórico-Práticas
