Metodo com ArrayList

3 respostas
fsfnit

Fala ai galera.
Tenho uma classe Aluno, e criei um arraylist de alunos.
ArrayList alunos = new ArrayList();

Só que estou tentando implementar um metodo para calcular a média de todos os alunos.
Só que não está dando erro, falando q não acha o metodo getMedia_aluno (este metodo pega media de 1 aluno em específico).
Mas enfim, queria um jeito, de no meu método, eu poder acessar cada objeto e seus respectivos atributos.

Está assim :

public float mediaGeral(ArrayList alunos){

for(int i =0; i< alunos.size(); i++){

        media_geral =+alunos.get(i).getMedia_aluno();

    }

Obrigado.

3 Respostas

Marky.Vasconcelos

Para usar

media_geral =+alunos.get(i).getMedia_aluno();

Como voce quer você tem que usar o Generics na declaração da ArrayList

ArrayList<Aluno> alunos = new ArrayList<Aluno>();

Ou então usar assim

media_geral =+((Aluno)alunos.get(i)).getMedia_aluno();

è melhor usar Generics

T

Jeito 1 - usar Cast (funciona com Java 1.2 ou posterior).

public float mediaGeral(ArrayList alunos){
    ....
    for(int i =0; i< alunos.size(); i++){
        media_geral +=((Aluno) alunos.get(i)).getMedia_aluno();
    } 
    ....
}

Dica - evite usar float, devido à sua precisão que é insuficiente para a maior parte das aplicações. Use double.

Jeito 2 - Usar Generics (funciona com Java 5.0 ou posterior)

List<Aluno> alunos = new ArrayList<Aluno>(); 
public float mediaGeral(List<Aluno> alunos){
    ....
    for(int i =0; i< alunos.size(); i++){
        media_geral += alunos.get(i).getMedia_aluno();
    } 
    ....
}
fsfnit

Vlw galera, era isso mesmo.

Agora outra dúvida:

Tenho uma classe Principal, onde está minha main, e onde instancio meus objetos de Alunos.

 eu faço:

Aluno a = new Aluno(X,XX,XXX);

Aluno b = new Aluno(X,XX,XXX);

Aluno c = new Aluno(X,XX,XXX);
na main eu nao posso fazer:  alunos.add(a) sem ter q criar um outro ArrayList nesta classe.

E ao mesmo tempo, caso eu crie um metodo addAlunos na classe Aluno, na minha main teria que usar uma instancia para adicionar inclusive as outras instancias, exemplificando, teria que fazer isso:

a.addAlunos(a);

a.addAlunos(b);

a.addAlunos©;

Isso estaria correto em termos de OO ?
Criado 31 de outubro de 2007
Ultima resposta 31 de out. de 2007
Respostas 3
Participantes 3