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

Aluno compilar erro

Caros , ao escrever o código abaixo encontro um problema com grande número de erros ao compilar. O código está igual ao do vídeo.

class turma {
    Aluno [] 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].nome = new Aluno();
        fj11.alunos[0].nome = "Mauricio";
        fj11.alunos[0].nota = 9;

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

        fj11.imprimeNotas ();    

    }
}

Ao compilar :

C:\Users\GUILHERME\Desktop\Logica>javac turma.java turma.java:5: error: cannot find symbol for(int i = 0; i < this.alunos.length; i++) { ^ symbol: variable alunos turma.java:6: error: cannot find symbol Aluno aluno = this.alunos[i]; ^ symbol: variable alunos turma.java:21: error: cannot find symbol fj11.alunos = new aluno[10]; ^ symbol: variable alunos location: variable fj11 of type turma turma.java:21: error: cannot find symbol fj11.alunos = new aluno[10]; ^ symbol: class aluno location: class testedaturma turma.java:23: error: cannot find symbol fj11.alunos[0].nome = new aluno(); ^ symbol: variable alunos location: variable fj11 of type turma turma.java:23: error: cannot find symbol fj11.alunos[0].nome = new aluno(); ^ symbol: class aluno location: class testedaturma turma.java:24: error: cannot find symbol fj11.alunos[0].nome = "Mauricio"; ^ symbol: variable alunos location: variable fj11 of type turma turma.java:25: error: cannot find symbol fj11.alunos[0].nota = 9; ^ symbol: variable alunos location: variable fj11 of type turma turma.java:27: error: cannot find symbol fj11.alunos[1].nome = new aluno(); ^ symbol: variable alunos location: variable fj11 of type turma turma.java:27: error: cannot find symbol fj11.alunos[1].nome = new aluno(); ^ symbol: class aluno location: class testedaturma turma.java:28: error: cannot find symbol fj11.alunos[1].nome = "Marcelo"; ^ symbol: variable alunos location: variable fj11 of type turma 11 errors

C:\Users\GUILHERME\Desktop\Logica>Java testedaturma 9 5 0 0 0 0 0 0 0 0

3 respostas

Guilherme, tudo bem ?

Cara o que tá rolando é que ele não está encontrando o atributo alunos, repare que no escopo da classe, você falou que a classe turma, tem um atributo que é um array de aluno, contudo você deu o nome à esse atributo de notas, imagino que você queira que ele seja chamado de alunos.

Abraços

Matheus Brandino , fiz como o indicado porém não resolveu .

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);
        }
    }
}

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].nome = new Aluno();
        fj11.alunos[0].nome = "Mauricio";
        fj11.alunos[0].nota = 9;

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

        fj11.imprimeNotas ();    

    }
}

C:\Users\GUILHERME\Desktop\Logica>javac turma.java turma.java:23: error: incompatible types: Aluno cannot be converted to String fj11.alunos[0].nome = new Aluno(); ^ turma.java:27: error: incompatible types: Aluno cannot be converted to String fj11.alunos[1].nome = new Aluno(); ^ turma.java:29: error: cannot find symbol fj11.notas[1].nota = 5; ^ symbol: variable notas location: variable fj11 of type turma 3 errors

C:\Users\GUILHERME\Desktop\Logica>Java testedaturma Exception in thread "main" java.lang.NoSuchFieldError: notas at testedaturma.main(turma.java:8)

solução!

Tem um pequeno detalhezinho que você errou , dá uma olhada :



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);
        }
    }
}

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();    

    }
}