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

Por que está imprimindo null?

Olá! Eu escrevi um código que após receber os dados sobre o nome e a idade de algumas pessoas, o programa deve imprimir um texto informando se ela é de maior ou de menor. No entanto, apenas estão aparecendo as mensagens:

null
null tem 0, logo é MENOR de idade
null tem 0, logo é MENOR de idade
null tem 0, logo é MENOR de idade
null tem 0, logo é MENOR de idade
null tem 0, logo é MENOR de idade

Aqui está o código:

CLASSE Pessoa

package exercicioPOO2;

public class Pessoa {

    String nome;
    int idade;

    public Pessoa(String nome, int idade) {
        nome = this.nome;
        idade = this.idade;
    }

    public String getNome() {
        return this.nome;
    }

    public int getIdade() {
        return this.idade;
    }
}

CLASSE VerificaIdade:

package exercicioPOO2;

public class VerificaIdade {

    public static void main(String[] args) {

        Pessoa pessoas[] = { 
                new Pessoa("Pedro", 14), new Pessoa("José", 41),
                new Pessoa("Selma", 30), new Pessoa("Camila", 17),
                new Pessoa("Ricardo", 10)
                };

        boolean mensagem = MaiorOuMenorDeIdade(pessoas, 0, 4);
    }

    public static Boolean MaiorOuMenorDeIdade(Pessoa pessoas[], int inicio, int termino) {

        System.out.println(pessoas[2].getNome()); // Linha de teste

        for (int atual = inicio; atual <= termino; atual++) {
            if (pessoas[atual].getIdade() < 18) {
                System.out.println(
                        pessoas[atual].getNome() + " tem " + pessoas[atual].getIdade() + " anos, logo é MENOR de idade.");

            } else {
                System.out.println(
                        pessoas[atual].getNome() + " tem " + pessoas[atual].getIdade() + " anos, logo é MAIOR de idade.");
            }
        }

        return false;

    }

}
2 respostas
solução!

Olá Marcelo, tudo bem? Seu código está quase perfeito, você só errou no contrutor na classe pessoa, só inverter o this;

public Pessoa(String nome, int idade) {
        this.nome = nome;
        this.idade = idade;
    }

Olá Fábio!

Muito obrigado! Funcionou!