1
resposta

Eu fiz tudo exatamente igual a aula , mais ainda sim surgiram algumas coisas que fiquei com duvida, nao consegui entender direito sobre boolean na criação dos metodos.

package bytebank;


    public boolean saca(double valor) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        } else {
            return false;
        }
    }

    public boolean transfere(double valor, Conta destino) {
        if(this.saldo >= valor){
            this.saldo-= valor;
            destino.depoista(valor);
            return true;
        } 
            return false;
    }

    public void deposita(int i) {
        // TODO Auto-generated method stub

    }

    public void deposita(int i, Conta contaDoJulio) {
        // TODO Auto-generated method stub

    }
}
1 resposta

Oie Julio, tudo bem com você?

Bom, como você já deve ter visto em aula, quando usamos o "boolean" na criação de métodos queremos informar para aquele método que ele terá que retornar "true" ou "false".

Vamos pegar de exemplo o método "transfere", dentro dele é feito uma lógica para fazer a transferência de uma conta para a outra, entretanto quando vamos testar esse método pode acontecer duas coisas, a primeira delas é ele conseguir transferir com sucesso o dinheiro ou dar algum problema e a transferência acabar falhando. Nessa situação se esse método "transfere" fosse "void" nós não iriamos receber nenhuma resposta, ou seja, ficaríamos na dúvida se a transferência deu realmente certo e no pior dos casos poderia até acabar dando erro de compilação, portando para evitarmos isso criamos o método usando o "boolean", obrigando assim o método a dar alguma resposta, sendo "true" se a transferência deu certo e "false" se deu errado.

Geralmente usamos o "boolean" em métodos quando sabemos que aquela lógica terá apenas duas conclusões possíveis, e como retorno para isso iremos receber um "true" ou um "false".

Outra coisa importante de ressaltar, nada impediria que fosse usado "String" nesse método, fazendo com que o método retornasse alguma mensagem como "Deu certo" ou "deu errado". Poderíamos até usar o "void" mas ai teríamos que criar um "System.out.println()" dentro do método. Entretanto, como boa prática, nessas situações em que só duas respostas são possíveis usamos o "boolean".

Segue explicação a partir do código:


 public boolean transfere(double valor, Conta destino) { //declaro método como boolean
        if(this.saldo >= valor){ // é feito a lógica para saber se tem dinheiro suficiente no saldo da conta para permitir a transferência
        // se tiver dinheiro ele segue com a lógica para transferir
            this.saldo-= valor; 
            destino.depoista(valor);
            return true; // e no final como a transferência deu certo ele retorna true
        } 
            return false; Caso a lógica do if de false o método irá retornar false
    }

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!