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

Error cannot find symbol.

E aí pessoal, tudo bem? Estou tentando fazer um programinha aqui utilizando arrays e não consigo compilar. Podem me ajudar a identificar aonde estou errando e o que devo fazer para resolver?

class Casa {
    String endereco;
    String bairro;
    String numero;
    Residente[] morador;

}

class Residente {
    String nome;
    String rg;
    int idade;
    double salario;

    void imprimeMorador (){
        for (int i = 0; i < this.casa.morador.length; i++){
            System.out.println("O morador de nome " + this.casa.morador.nome + 
            ", de idade " + this.casa.morador.idade + 
            ", de RG " + this.casa.morador.rg + 
            " e de salário " + this.casa.morador.salario);
        }
    }
}

class TestaCasa{
    public static void main(String[]args){
        Casa c1 = new Casa();

        c1.endereco = "Rua Henrique Gorceix";
        c1.numero = "1780";
        c1.bairro = "Caiçara";

        c1.morador = new Residente[2];

        c1.morador[0] = new Residente();
        c1.morador[0].nome = "Diego";
        c1.morador[0].idade = 27;
        c1.morador[0].rg = "123";
        c1.morador[0].salario = 3500.00;

        c1.morador[1] = new Residente();
        c1.morador[1].nome = "Paloma";
        c1.morador[1].idade = 20;
        c1.morador[1].rg = "123";
        c1.morador[1].salario = 3500.10;

    }
}
4 respostas
solução!

Bom dia Diego, tudo bem com vc?

Então olhando no seu código, no método "imprimeMorador()" da classe Residente, vc está tentando usar a variável 'this.casa' porém ela não existe dentro da sua classe.

Como forma de correção, sugiro à vc que declare a variável Casa como forma de variável de instancia dessa forma:

class Residente { //.. Casa casa; ..// }

ou vc pode passar também a referência de Casa como parâmetro para o seu método imprimeMorador().

imprimeMorador(Casa casa);

Espero ter ajudado. Obrigado e bons estudos!! ;)

Tipo isso?

class Casa1 {
    String endereço;
    String numero;
    String bairro; 
    Residente1[] morador;

    void imprimeMoradores () {

        for(int i = 0; i < this.morador.length; i++){
            Residente1 residente1 = this.morador[i];
            System.out.println(residente1.nome + " " + residente1.idade);
        }

    }
}

class Residente1 {
    String nome;
    int idade;
    String cpf;
    double salario;
}

class TestaCasa1{
    public static void main(String [] args){
        Casa1 c1 = new Casa1();
        c1.morador = new Residente1[2];

        c1.endereço = "Rua Henrique Gorceix";
        c1.numero = "1780";
        c1.bairro = "Caiçara";

        c1.morador[0] = new Residente1();
        c1.morador[0].nome = "Diego";
        c1.morador[0].idade = 27;
        c1.morador[0].cpf = "123";
        c1.morador[0].salario = 3500.0;

        c1.morador[1] = new Residente1();
        c1.morador[1].nome = "Jéssica";
        c1.morador[1].idade = 29;
        c1.morador[1].cpf = "456";
        c1.morador[1].salario = 3500.00;

        c1.imprimeMoradores();

    }
}

Também!! Legal que vc já vai exercitando o relacionamento entre as classes.

Show, parabéns!!!

Obrigado!