1
resposta

Dúvidas sobre Getter e Setter

Olá

Estou com uma dúvida. Gostaria de saber se é possível imprimir alguma mensagem quando invoco o método Getter. Por ex, ao chamar o getSaldo e trazer a mensagem: Seu saldo é 1000.0. Eu tentei fazer dentro do get mas dessa forma viria duas msg, a que eu quero que fique impresso e a outra só do valor que é a do return.

public double getSaldo() {

        System.out.println("O saldo é de: " + this.saldo);
        return this.saldo;

    }

Eu teria que criar um método só para imprimir a msg ou é possível fazer tudo dentro do Getter? O que me leva para uma outra dúvida, que é se o Getter e o Setter podem conter outros códigos como Ifs, Whiles, etc.

1 resposta

Oie Flávio, tudo bem contigo?

Não sei se conseguir entender muito bem sua dúvida, mas vamos lá.

O que daria para fazer é transformar o seu método "getSaldo" para apenas fazer a impressão no console, para isso faça as seguintes alterações:

// retirar o double do método e colocar void, fazendo isso o seu método não vai ser obrigado a retornar nada
public void getSaldo() {
        System.out.println("O saldo é de: " + this.saldo);
        // após retirar o double e colocar void você vai poder deletar o return daqui
    }

Entretando, eu não recomendo fazer o exemplo acima, pois o getter tem um padrão, sendo ele feito para sempre fazer esse "return" dependendo do tipo do método, por isso caso você não tenha a necessidade de ter esse "return" é melhor deletar esse método getter e criar outro no lugar, algo como "imprimeSaldo", onde o código seria igual o de cima mas com o nome diferente.

public void imprimeSaldo() {
        System.out.println("O saldo é de: " + this.saldo);
    }

Também existe a possibilidade de você criar mais um método, você deixa o "getSaldo" fazendo o trabalho dele de retornar e cria um método "imprimeSaldo" que vai ser responsável de fazer essa impressão.

public double getSaldo() {
        return this.saldo;
    }


public void imprimeSaldo() {
        System.out.println("O saldo é de: " + this.saldo);
    }

Respondendo sua última pergunta, sim, os getters e os setters podem conter estruturas condicionais e de loop dentro deles, sendo "ifs" ou um "for".

Espero ter conseguido te ajudar, se restar qualquer outra dúvida eu fico a disposição :)

Bons estudos!