Gestão Academica em Java - aula8 - pr?tica - interfaces

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>() .

Pede-se:

•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.

Comentários