Gestão Academica em Java - aula8 - pr?tica - interfaces - Objetivos: 1. Modelar um...
Gestão Academica em Java - aula8 - pr?tica - interfaces
UFU/FACOM Disciplina: POO1 Aula Prática – Interfaces
Objetivos: 1.Praticar o uso de interfaces. 2.Entender as vantagens de criar código genérico programando-se para uma abstração e não para classes concretas.
Enunciado: Crie uma classe ProjetoPesquisa com os atributos código, título, data de início, data de fim, professor responsável (que deve ser um professor existente na lista de professores cadastrados) e equipe, que é um ArrayList para armazenar os professores e alunos envolvidos no projeto.
Para que seja possível criar uma ArrayList que aceite professores e alunos, ambas estas classes devem possuir o mesmo super tipo. A saída é utilizar interfaces.
Crie uma interface "Pesquisador". Esta interface "Pesquisador" deve ser super tipo de Professor e Aluno, para que possamos usar comportamento polimórfico sobre estas duas classes. A interface deve conter um método para retornar o nome de um pesquisador e o seu tipo (Professor ou Aluno):
public interface Pesquisador { public abstract String getNome(); public abstract String getTipo(); }
Agora, para fazer com que nossas classes Professor e Aluno sejam pesquisadores, precisamos fazer o seguinte:
class Professor extends Funcionario implements Pesquisador{ ... } class Aluno implements Pesquisador { …}
Note agora que Professor é um Funcionario e Pesquisador ao mesmo tempo. E
Aluno é também um Pesquisador. Agora também é possível criar o ArrayList "equipe" dentro da classe ProjetoPesquisa:
private ArrayList<Pesquisador> equipe = new ArrayList<Pesquisador>() .
•Crie um menu para cadastrar os projetos de pesquisa e inserir professores e alunos no projeto.
•Crie uma opção para mostrar os dados e os participantes de um determinado projeto (nome e tipo), buscando-o através do seu código.
É importante enfatizar que a palavra reservada implements é utilizada por sub-tipos de interfaces ao invés de extends.