Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O que eu estou fazendo de errado?

Tive uma ideia de criar três classes, uma de Soverteria, Cliente e Soverte, com a lógica de que a soverteria vende o soverte para o cliente. Mas não estou conseguindo executar a ideia, alguém pode me explicar o que estou fazendo de errado?

package sorveteria;

public class Cliente {

    String nome;
    String cpf;

    public static void main(String[] args) {

        Soverteria cliente = new Sorveteria();
        cliente.venda(4.00);
    }
}
package sorveteria;

public class Sorvete {

    String tipo;
    String nome;
    String marca;
    String sabor;
    double preco;

    public static void main(String[] args) {

        Soverteria sorvete = new Soverteria();
        sorvete.preco = 6.00;
    }
}
package sorveteria;

public class Sorveteria {

    double preco;

    public static void main(String[] args) {

    public boolean venda(double dinheiroDado) {
        // verificar se o cliente possui dinheiro para comprar o sorvete
        if (dinheiroDado < this.preco) {

            System.out.println("Não tem dinheiro suficiente");
            return false;

        } else if (dinheiroDado == this.preco) {

            System.out.println("Obrigado por comprar conosco");
            return true;

        } else if (dinheiroDado > this.preco) {

            double troco = dinheiroDado - this.preco;

            System.out.println("Aqui esta seu troco R$ " + troco);
            return true;
        }
    }
}
1 resposta
solução!

Olá, boa tarde! O problema é que todas essas classes tem um método main, que faz a execução do código. O ideal é que você implemente a lógica em classes separadas e excutar os testes em uma outra classe específica para isso, onde você vai colocar o método main. Aqui está uma sugestão do código:

package sorveteria;

public class Cliente {

    String nome;
    String cpf;
    double dinheiroNaCarteira;

    public void comprarSorvete(Sorveteria sorveteria) {
        sorveteria.venda(this.dinheiroNaCarteira);
    }

}
package sorveteria;

public class Sorvete {

    String tipo;
    String nome;
    String marca;
    String sabor;
    double preco;

}
public class Sorveteria {

    Sorvete sorvete;

    public boolean venda(double dinheiroDado) {
        // verificar se o cliente possui dinheiro para comprar o sorvete
        if (dinheiroDado < this.sorvete.preco) {

            System.out.println("Não tem dinheiro suficiente");
            return false;

        } else if (dinheiroDado == this.sorvete.preco) {

            System.out.println("Obrigado por comprar conosco");
            return true;

        } else if (dinheiroDado > this.sorvete.preco) {

            double troco = dinheiroDado - this.sorvete.preco;

            System.out.println("Aqui esta seu troco R$ " + troco);
            return true;
        }
        return false;
    }
}
package sorveteria;

public class TesteSorveteria {

    // Classe com os testes

    public static void main(String[] args) {
        Sorvete sorvete = new Sorvete();
        sorvete.preco = 7.50;

        Sorveteria sorveteria = new Sorveteria();
        sorveteria.sorvete = sorvete;

        Cliente cliente = new Cliente();

        // Realiza compra com troco
        cliente.dinheiroNaCarteira = 15;
        cliente.comprarSorvete(sorveteria);

        // Compra sem troco
        cliente.dinheiroNaCarteira = 7.50;
        cliente.comprarSorvete(sorveteria);

        // Compra não realizada
        cliente.dinheiroNaCarteira = 5;
        cliente.comprarSorvete(sorveteria);
    }

}

Espero ter ajudado!