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

Array: Código da explicação não compila

Boa noite pessoal. Estou começando o capítulo de array. Estou tendo algumas dificuldades, o código da explicação por exemplo, não está compilando.

class Turma {
    int[] notas;

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

class Aluno {
    String nome;
    int nota;
}

class TesteDaTurma {
    public static void main(String[] args) {
        Turma fj11 = new Turma();
        fj11.alunos = new Aluno[10];

        fj11.alunos[0] = new Aluno();
        fj11.alunos[0].nome = "Mauricio";
        fj11.alunos[0].nota = 9;

        fj11.alunos[1] = new Aluno();
        fj11.alunos[1].nome = "Marcelo";
        fj11.alunos[1].nota = 5;

        fj11.imprimeNotas();

    }
}

O erro ocorre logo no "this.alunos.length" o primeiro ponto após o this. Então é desencadeado uma sequencia de erros nos pontos após fj11 (nome da turma criada).

Se alguem souber o que é, por favor, me ajude.

Obrigado!

3 respostas
solução!

Boa noite amigo, a classe Turma não tem nenhuma propriedade aluno... quando vc usa o this.aluno significa variavel aluno da propria classe mas sua classe n tem aluno

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

Aluno aluno = this.alunos[i];

perceba que vc esta usando aluno mas esta variavel não existe no metodo

Corrija a classe turma :)

A Turma tem alunos e o Aluno tem Nota.

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(aluno.nota);
        }
    }
}

É isso mesmo amigos. Obrigado pelo feedback, me ajudou mto. Não me atentei a este erro ontem.

Obrigado, Abraço.