Imprimindo vetor de string e float

5 respostas
J

Boa noite
sou novo em programçao java e estou tendo problemas em imprimir
o seguinte vetor se puderem me ajudar

o codigo

class Aluno {
    String nome;
    double nota;
    public Aluno (String nome,double nota){
        this.nome=nome;
        this.nota=nota;
        
    }
}



public class Ordenacao{
public static void main(String[] args){
 
        
 Aluno alunos[]=new Aluno[8];

alunos[0]= new Aluno("jorge",2);
alunos[1] = new Aluno("Andreia",3.0);
alunos[2] = new Aluno("Carlos",2.0);
alunos[3] = new Aluno("Pedro",4.0);
alunos[4] = new Aluno("Luis",6.0);
alunos[5] = new Aluno("Josea",1.0);
alunos[6] = new Aluno("Joseb",3.0);
alunos[7] = new Aluno("Josec",6.0);


for (int i=0;i<alunos.length;i++) {
 System.out.println(alunos[i]);
System.out.println();
}

}
}

a saida

Aluno@addbf1

Aluno@42e816

Aluno@9304b1

Aluno@190d11

Aluno@a90653

Aluno@de6ced

Aluno@c17164

Aluno@1fb8ee3

se puderem me ajudar

5 Respostas

nel

Oi!

- Faltou os métodos get na sua classe Aluno (encapsulamento)

class Aluno {  
    private String nome;  
    private double nota;  
    
    public Aluno (String nome,double nota){  
        this.nome=nome;  
        this.nota=nota;  
          
    }
   
    public String getNome() {
        return this.nome;
   }  

    public double getNota() {
        return this.nota;
   }  
}

- Agora basta modificar seu System.out.println(). Da forma como fez, você está armazenando objetos dentro do vetor e mandando imprimir este objeto, portanto, faça:

for (int i=0;i<alunos.length;i++) {  
System.out.println(alunos[i].getNome());  
System.out.println(alunos[i].getNota());  
}

Abraços.

V

E aí jobs beleza ?

A resposta do nel resolve seu problema.

O que teu código está imprimindo é a posição de memória do objeto aluno.

Por isso o resultado ‘estranho’.

lucasportela

Estude sobre ‘Encapsulamento’ e ‘Orientação ao Objeto’

uma boa pratica de fazer este loop seria:

for (Aluno aluno : alunos) {   
    System.out.println("NOME: " + aluno.getNome() + " | NOTA: " + aluno.getNota());
}
henriqueluz

Ou então caso queira imprimir todos os atributos usando dessa maneira que você fez, sobrescreva o método toString(); da classe Aluno

@Override public String toString(){ return "Nome: " + getNome() + " Nota: " + getNota(); }

Abs,

J

deu certo!!

obrigada valeu muito mesmo

Criado 11 de agosto de 2011
Ultima resposta 12 de ago. de 2011
Respostas 5
Participantes 5