1
resposta

Dúvida quanto ao retorno.

Estou com dúvidas quanto ao retorno de um método.

Primeiro: O que é o retorno em si? Criei uma classe conforme o curso orientou com 4 métodos, dois com void e os outros com boolean. Um deles que o retorno é void, seria para imprimir os dados da conta. Mesmo sem retornar nada ele imprimi corretamente os dados. Então ficou a dúvida sobre o que efetivamente é o retorno.

Segunda: Por que ao se definir uma variável boleana recebendo um método ele executa o método? Fiquei com dúvida pois achei que ele deveria receber apenas o retorno true ou false, mas ele além disso executa na declaração da variável.

Seguem meus códigos:

public class CriaConta {
    public static void main(String[]args) {
        Conta angeloConta = new Conta();
        angeloConta.saldo = 200;
        System.out.println(angeloConta); 
        angeloConta.titular = "Angello Cassio";
        angeloConta.agencia = 050423;
        angeloConta.numero = 363;
        angeloConta.extrato(); 
        Conta palomaConta = new Conta();
        palomaConta.saldo=500;
        palomaConta.agencia= 9000;
        palomaConta.numero=913;
        palomaConta.titular="Paloma Saldanha";
        palomaConta.tranfere(100, angeloConta);
        palomaConta.extrato();
        System.out.println("Novo saldo de Angello é: "+angeloConta.saldo);
        boolean transferenciaOk = palomaConta.tranfere(100, angeloConta);
        System.out.println(transferenciaOk);
        System.out.println("Novo saldo de Angello é: "+angeloConta.saldo);    
    }
}
public class Conta {
    double saldo;
    int agencia;
    int numero;
    String titular;

    public void depoisita(double valor) {
            this.saldo += valor;
    }
    public boolean saca (double valor) {
        if (saldo>=valor) {
            this.saldo -= valor;
            return true;
        } else {
            return false;
        }
    }
    public boolean tranfere (double valor, Conta destino) {
        if (valor<=saldo) {
            this.saca(valor);
            destino.depoisita(valor);
            return true;
        }else {
            return false;
        }
    }
    public void extrato() {
        System.out.println("Dados da Conta");
        System.out.println("Titular: "+ titular);
        System.out.println("Agência: "+ agencia);
        System.out.println("Conta Corrente: " + numero);
        System.out.println("Saldo: "+ saldo);
        System.out.println("---------------------------------------");

    }
}

Procurei em outros lugares, mas nenhum explica exatamente essas dúvidas.

Mais uma vez, parabéns pelo curso! Estou achando de grande valia. Muito obrigada!

1 resposta

"Primeiro: O que é o retorno em si? Criei uma classe conforme o curso orientou com 4 métodos, dois com void e os outros com boolean. Um deles que o retorno é void, seria para imprimir os dados da conta. Mesmo sem retornar nada ele imprimi corretamente os dados. Então ficou a dúvida sobre o que efetivamente é o retorno."

Pense no método como um pedido para executar uma ação. Se você acha que a ação deveria retornar algo para quem pediu aquela execução, dê algum retorno. Exemplo: quem chama um método que realiza um saque, precisa saber se o saque foi realizado com sucesso. Só dessa forma o programa pode continuar pelo fluxo correto.

No fim, sempre vai ser uma decisão do programador(a).

"Segunda: Por que ao se definir uma variável boleana recebendo um método ele executa o método? Fiquei com dúvida pois achei que ele deveria receber apenas o retorno true ou false, mas ele além disso executa na declaração da variável."

Ela não está recebendo um método. Ela está recebendo o retorno da execução do método.