1
resposta

Dúvida sobre o método getter

Sobre o exercício 2, segue a minha resolução:

public class IdadePessoa {
    private String nome;
    private int idade;

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public void verificaIdade(){
        if (idade>=18){
            System.out.println(nome + " é maior de idade!");
        }else{
            System.out.println(nome + " é menor de idade");
        }
    }
}

//Código main 

public class PrincipalIdadePessoa {
    public static void main(String[] args) {
        IdadePessoa idade = new IdadePessoa();

        idade.setNome("Pedro");
        idade.setIdade(15);

        idade.verificaIdade();
    }
}

Mas me gerou uma dúvida ao retirar propositalmente o módulo get do nome. Pois ao rodar o código, me foi apresentado o nome, mesmo estando privado na classe IdadePessoa.

1 resposta

Oi, João! Tudo bem?

Ótimo código, parabéns! Em relação a dúvida sobre o método getter e o acesso ao atributo nome na classe IdadePessoa, no nosso código, mesmo que o atributo nome seja privado (private), ele ainda pode ser acessado dentro da própria classe IdadePessoa, o que significa que qualquer método dentro dessa classe, incluindo verificaIdade, pode acessar e utilizar nome diretamente.

Aqui, o método verificaIdade está acessando o atributo nome diretamente, mesmo ele sendo privado, isso é permitido porque verificaIdade é um método da mesma classe onde nome está declarado. O modificador private restringe o acesso ao atributo nome apenas para fora da classe IdadePessoa, ou seja, não podemos acessar nome diretamente a partir de outra classe, como PrincipalIdadePessoa, para isso, precisaríamos de um método getter, como fizemos com o atributo idade.

Espero ter ajudado!

Um forte abraço e bons estudos!