2
respostas

[Projeto] Projeto

public class Main {
    public static void main(String[] args) {
      CartaoCredito meuCartao = new CartaoCredito("Eleazar Lima", "5555 6666 7777 8888", 3000.00);
        
        // Exibindo resumo inicial
        System.out.println("=== Situação Inicial do Cartão ===");
        meuCartao.exibirResumo();
        
        // Realizando compras
        System.out.println("\n=== Realizando Compras ===");
        meuCartao.realizarCompra(500.00);
        meuCartao.realizarCompra(1200.00);
        meuCartao.realizarCompra(1500.00); // Esta deve passar
        meuCartao.realizarCompra(1000.00); // Esta deve falhar (ultrapassa o limite)
        
        // Exibindo resumo após compras
        System.out.println("\n=== Situação após Compras ===");
        meuCartao.exibirResumo();
        
        // Realizando pagamentos
        System.out.println("\n=== Realizando Pagamentos ===");
        meuCartao.realizarPagamento(800.00);
        meuCartao.realizarPagamento(500.00);
        meuCartao.realizarPagamento(2000.00); // Pagamento maior que a dívida
        
        // Exibindo resumo final
        System.out.println("\n=== Situação Final do Cartão ===");
        meuCartao.exibirResumo();
    }
}

public class CartaoCredito {
    private String titular;
    private String numeroCartao;
    private double limite;
    private double saldo;
    
    // Construtor
    public CartaoCredito(String titular, String numeroCartao, double limite) {
        this.titular = titular;
        this.numeroCartao = numeroCartao;
        this.limite = limite;
        this.saldo = limite; // Saldo disponível inicia igual ao limite
    }
    
    // Métodos getters
    public String getTitular() {
        return titular;
    }

    public String getNumeroCartao() {
        return numeroCartao;
    }

    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public double getSaldoDisponivel() {
        return saldo;
    }
    
    // Método para realizar uma compra
    public boolean realizarCompra(double valor) {
        if (valor <= 0) {
            System.out.println("Valor da compra deve ser positivo.");
            return false;
        }
        
        if (valor > saldo) {
            System.out.println("Saldo insuficiente para esta compra.");
            return false;
        }
        
        saldo -= valor;
        System.out.println("Compra de R$" + valor + " realizada com sucesso.");
        return true;
    }
    
    // Método para realizar pagamento
    public void realizarPagamento(double valor) {
        if (valor <= 0) {
            System.out.println("Valor do pagamento deve ser positivo.");
            return;
        }
        
        double valorDevido = limite - saldo;
        
        if (valor > valorDevido) {
            System.out.println("Pagamento excede o valor devido. Apenas R$" + valorDevido + " será aplicado.");
            saldo = limite;
        } else {
            saldo += valor;
            System.out.println("Pagamento de R$" + valor + " realizado com sucesso.");
        }
    }
    
    // Método para exibir resumo
    public void exibirResumo() {
        System.out.println("\n--- Resumo do Cartão ---");
        System.out.println("Titular: " + titular);
        System.out.println("Número do Cartão: " + numeroCartao);
        System.out.println("Limite Total: R$" + String.format("%.2f", limite));
        System.out.println("Saldo Disponível: R$" + String.format("%.2f", saldo));
        System.out.println("Valor Gasto: R$" + String.format("%.2f", (limite - saldo)));
        System.out.println("-----------------------\n");
    }
}
2 respostas
public class CartaoCredito {
    // Atributos da classe
    private String titular;
    private String numeroCartao;
    private double limite;
    private double saldo;
    
    // Construtor
    public CartaoCredito(String titular, String numeroCartao, double limite) {
        this.titular = titular;
        this.numeroCartao = numeroCartao;
        this.limite = limite;
        this.saldo = limite; // Saldo disponível inicia igual ao limite
    }
    
    // Métodos getters
    public String getTitular() {
        return titular;
    }

    public String getNumeroCartao() {
        return numeroCartao;
    }

    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public double getSaldoDisponivel() {
        return saldo;
    }
    
    // Método para realizar uma compra
    public boolean realizarCompra(double valor) {
        if (valor <= 0) {
            System.out.println("Valor da compra deve ser positivo.");
            return false;
        }
        
        if (valor > saldo) {
            System.out.println("Saldo insuficiente para esta compra.");
            return false;
        }
        
        saldo -= valor;
        System.out.println("Compra de R$" + valor + " realizada com sucesso.");
        return true;
    }
    
    // Método para realizar pagamento
    public void realizarPagamento(double valor) {
        if (valor <= 0) {
            System.out.println("Valor do pagamento deve ser positivo.");
            return;
        }
        
        double valorDevido = limite - saldo;
        
        if (valor > valorDevido) {
            System.out.println("Pagamento excede o valor devido. Apenas R$" + valorDevido + " será aplicado.");
            saldo = limite;
        } else {
            saldo += valor;
            System.out.println("Pagamento de R$" + valor + " realizado com sucesso.");
        }
    }
    
    // Método para exibir resumo
    public void exibirResumo() {
        System.out.println("\n--- Resumo do Cartão ---");
        System.out.println("Titular: " + titular);
        System.out.println("Número do Cartão: " + numeroCartao);
        System.out.println("Limite Total: R$" + String.format("%.2f", limite));
        System.out.println("Saldo Disponível: R$" + String.format("%.2f", saldo));
        System.out.println("Valor Gasto: R$" + String.format("%.2f", (limite - saldo)));
        System.out.println("-----------------------\n");
    }
}

Parabéns!!