Poligno 1 Denunciar post Postado Junho 8, 2016 Olá pessoal,tudo certo? Comecei ver na facul sobre hierarquia e herança.O professor passou um exercício em que se deve fazer um sistema acadêmico com algumas classes e métodos específicos que ele pede. Uma dessas classes é a classe ListaDePessoas ,é uma array que recebe todas as pessoas envolvidas no sistemas(alunos,professores e funcionários em geral). Um dos métodos solicitados é o método pessoaDoCurso este método consiste em receber como parâmetro uma string que se refere a um curso e procurar todos os objetos da array que são alunos/professores relacionados aquele curso.Eu tentei fazer ele da forma que vcs verão a baixo,porém na linha marcada (ERRO AQUI) eu fiz um if que compara, usando o equalsIgnoreCase(), o parâmetro recebido com o o curso do objeto da casa atual (getCurso()) porém ele da erro,já que o array é do tipo pessoa,que apesar de ser a super classe, n pode executar este método pois ele é da classe filha Aluno,tbm não sei certo o que devo por no return. O que vcs sugerem ? PS: n posso alterar o tipo do método nem nada ,já que ele foi pré definido pelo professor. A baixo está o código com tds as classes: Não fiz nada no main ainda pois primeiro quero deixar todas as classes 'ok' para depois fazer a interface de usuário. package uni4;import java.util.Scanner;public class Uni4 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); }} package uni4;public class Pessoa { /* Está classe possuiu apenas os dados básicos de uma pessoa*/ protected String nome; protected String endereco; protected int idade;} package uni4;public class Funcionario extends Pessoa { protected boolean presenca; /*Atributo que diz se o funcionario veio trabalhar*/ protected double salario; /*Atributo que recebe o valor salarial*/ public Funcionario(){} /*Construtor normal*/ public Funcionario(String nome,int idade){ /*Construtor Personalizado*/ this.nome=nome; this.idade=idade; } public void setNome(String nome) { this.nome = nome; } public void setEndereco(String end) { super.endereco=end; } public void setIdade(int idade) { this.idade = idade; } public void setPresenca(boolean presenca) { this.presenca = presenca; } /*é um 'get' da presença*/public boolean isPresenca() { return presenca; } public String getNome() { return nome; } public String getEndereco() { return super.endereco; } public int getIdade() { return idade; } /*Método para calcular o salário*/ public double CalcSalario(double s,double hr){ double aux=s*hr; this.salario=aux; return this.salario; }} package uni4;public class Prof extends Funcionario { private String curso; //Curso em que o professor da aula private double ch; //carga horaria private double salario; public Prof(){} public Prof(String n,int id){ super.idade=id; super.nome=n; } public void setCurso(String curso) { this.curso = curso; } public void setCh(double ch) { this.ch = ch; } public String getCurso() { return curso; } public double getCh() { return ch; } public void setSalario(double salario) { System.out.println("Digite quanto o professor recebe por hora"); this.salario = salario; } public double getSalario() { return this.salario; }} package uni4;public class Aluno extends Pessoa{ private String curso; /*O curso que o aluno estuda*/ private int numMat; /*O numero da matrícula do aluno*/ /*Construtor personalizado*/ public Aluno(String n,int idade){ this.nome=n; this.idade=idade; } /*Getters e Seters dos atributos*/ public void setNome(String nome) { this.nome = nome; } public void setIdade(int idade) { this.idade = idade; } public void setCurso(String curso) { this.curso = curso; } public String getNome() { return nome; } public int getIdade() { return idade; } public String getCurso() { return curso; }} package uni4;public class ListaDePessoas extends Pessoa { protected Pessoa[] array = new Pessoa[100]; /*Método para procurar pessoas pelo nome*/ public Pessoa ProcuraPessoa(String nome){ int aux=0; for(int i=0;i<array.length;i++){ if(nome.equalsIgnoreCase(array.nome)){ System.out.println(nome+" está na posição "+i+" da lista"); //printar a classe e os outros dados do aluno-----------------------------------AQUI aux =i; break; } else{ return null; } } return array[aux]; } /*Método que retorna o objeto presente no índice X*/ public Pessoa get(int indice){ if(array[indice]!=null) return array[indice]; else return null; } /*Método que retorna a quantidade de pessoas*/ public int quantidade(){ int cont=0; for(int i=0;i<array.length;i++){ if(array!=null) cont++; else break; } return cont; } /*Método que procura a pessoa pelo curso que ela está relacionada (aluno ou professor)*/ public ListaDePessoas pessoasDoCurso(String nomeDoCurso){ Pessoa[] ListaDePessoas = new Pessoa[100]; for(int i=0;i<ListaDePessoas.length;i++){ for(int j=0;j<ListaDePessoas.length;j++){ if(nomeDoCurso.equalsIgnoreCase(array[j].getCurso())){ /* ERRO AQUI*/ ListaDePessoas=array[j]; } break; } } return ListaDePessoas; }} Por hora é isso gurizada!Agradeço desde já pela força! Compartilhar este post Link para o post Compartilhar em outros sites