Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução

package com.github.lucasdevrj.exercicios.zerandoosaldo;

import java.util.Scanner;

public class ContaBancaria {

    double saldo = 0.00;

    public void depositarValor() {
        Scanner entrada = new Scanner(System.in);

        System.out.print("Digite o valor: ");
        double valor = entrada.nextDouble();
        saldo += valor;

        System.out.printf("O deposito de R$%.2f foi realizado com sucesso.\n", valor);
    }

    public void exibirSaldo() {
        System.out.printf("Saldo Atual: R$%.2f.\n", saldo);
    }

    public void zerarSaldo() {
        saldo = 0.00;
        System.out.println("Saldo zerado com sucesso.");
    }
}
/**
 * Imagine que você está desenvolvendo um sistema de conta digital onde os usuários podem realizar
 * transações financeiras. Em determinadas situações, como encerramento de conta, é necessário
 * zerar o saldo disponível.
 *
 * Crie um programa que:
 *
 * Defina uma classe com o atributo saldo.
 * Implemente um método que redefine o valor do saldo para 0.0.
 * Implemente um método que mostra o saldo atual formatado.
 *
 * Exemplo de entrada:
 *
 * conta.saldo = 1579.42;
 *
 * conta.exibirSaldo();
 * conta.zerarSaldo();
 * conta.exibirSaldo();
 *
 * Saída esperada:
 *
 * Saldo atual: R$ 1579.42
 * Saldo atual: R$ 0.00
 */

package com.github.lucasdevrj.exercicios.zerandoosaldo;

public class Principal {
    public static void main(String[] args) {
        ContaBancaria contaBancaria = new ContaBancaria();
        contaBancaria.depositarValor();
        contaBancaria.depositarValor();
        contaBancaria.exibirSaldo();
        contaBancaria.zerarSaldo();
        contaBancaria.exibirSaldo();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Beleza?

1 resposta

Olá, Lucas. Como vai?

Sua resolução ficou excelente e muito completa! O código está muito bem estruturado, respeitando as boas práticas de divisão de classes e responsabilidades da Orientação a Objetos. Você foi além do que o enunciado pedia, adicionando uma dinâmica interativa muito bacana com a classe Scanner para receber as entradas do usuário.

Como você compartilhou a sua solução para o desafio, vou aproveitar para trazer alguns pontos de melhoria e boas práticas de mercado baseados no seu código, focando na evolução dos seus estudos de Java.

1. Encapsulamento (Proteção dos Dados)

Atualmente, o atributo double saldo está com o modificador de acesso padrão (package-private). Na orientação a objetos, uma boa prática fundamental é o encapsulamento. Atributos sensíveis, como o saldo de uma conta bancária, devem ser protegidos contra modificações diretas de fora da própria classe.

O ideal é torná-lo private para garantir que o saldo só possa ser alterado por meio dos métodos que você mesmo criou (depositarValor e zerarSaldo):

private double saldo = 0.00;

2. Gerenciamento de Recursos (Scanner)

Dentro do método depositarValor(), você instanciou o Scanner entrada = new Scanner(System.in);.

Como o método main chama o depositarValor() duas vezes seguidas, o Java cria dois objetos de leitura na memória. Uma boa prática para evitar o desperdício de recursos (resource leak) e possíveis problemas de leitura é instanciar o Scanner apenas uma vez no método main e passá-lo como parâmetro, ou criar o Scanner como um atributo da própria classe, lembrando de fechá-lo quando não for mais necessário.

3. Representação de Dinheiro em Java (Dica de Ouro)

Você utilizou o tipo primitivo double para o saldo. Para projetos reais e sistemas financeiros, o uso de double ou float pode gerar pequenas imprecisões de arredondamento em cálculos matemáticos devido à forma como os computadores lidam com números de ponto flutuante binário.

Para valores monetários em Java, a classe mais recomendada pelo mercado é a BigDecimal (do pacote java.math), pois ela oferece precisão absoluta para operações financeiras. Fica a sugestão de estudo para os seus próximos projetos de Java voltados a finanças!

Seu resultado no console do IntelliJ mostra que tudo funcionou perfeitamente e os métodos executaram na ordem exata solicitada pela atividade. Parabéns pelo empenho e continue compartilhando suas resoluções por aqui!

Espero que possa ter lhe ajudado!