Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O código funciona mas o retorno não é o esperado:

``

public class Aluno {

String nome; int nota; }

``

``

public class Turma {

Aluno[] alunos;

void imprimeNotas () { for(int i=0; i<this.alunos.length; i++){ Aluno aluno = this.alunos[i]; if (aluno==null) continue; System.out.println(this.alunos[i]); } } }

``

``

public class ProgramaTurma {

public static void main(String[] args) {

Turma cp2 = new Turma(); cp2.alunos = new Aluno[10];

cp2.alunos[0] = new Aluno(); cp2.alunos[0].nome = "Guilherme"; cp2.alunos[0].nota = 5;

cp2.alunos[1] = new Aluno(); cp2.alunos[1].nome = "Gabi"; cp2.alunos[1].nota = 9;

cp2.imprimeNotas(); } }

``

resultado :

programa04.Aluno@15db9742

programa04.Aluno@6d06d69c

2 respostas
solução!

Olá Rennan! No método imprimeNotas() da classe Turma você deve referenciar aluno e não alunos. Tente assim:

void imprimeNotas () {
  for(int i=0; i<this.alunos.length; i++)  {
    Aluno aluno = this.alunos[i];
     if (aluno==null) continue;
      // System.out.println(this.alunos[i]);
      System.out.println(aluno.nome + ": nota " + aluno.nota);
    }
   }
 }

Abraços!

Olá Rennan,

Não tem erro no seu código, isso acontece pois você pediu para imprimir a classe Aluno e não sobrescreveu o método toString .

Por exemplo:

class Aluno {

    String nome;
    int nota;

    @Override
    public String toString() {
        return this.nota + "";
    }
}

Ou na classe Turma você pode mudar o println

System.out.println(this.alunos[i].nota);