Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

POO - Programação Orientada a Objetos - Exercício Resolvido 4 - A classe ContaBancaria (construtores, métodos, getters e setters e encapsulamento) - Exercícios Resolvidos de Java

Quantidade de visualizações: 12460 vezes
Pergunta/Tarefa:

Escreva uma classe Java chamada ContaBancaria para representar uma conta bancária. Esta classe deverá conter:

a) Um campo de dados privado do tipo double chamado saldo que representa o saldo atual da conta. O saldo padrão é 0.0.

b) Um campo de dados privado do tipo Date chamado dataAbertura que guarda a data da abertura da conta bancária. O valor padrão é a data atual. Note que o campo dataAbertura é somente leitura, ou seja, no momento da criação da conta, esta variável receberá a data atual e não poderá mais ser alterada (não forneça o método set() para este campo).

c) Um construtor sem argumentos que cria uma nova conta com saldo 0.0 e com data de abertura igual à data atual.

d) Métodos get() e set() para o campo saldo e apenas o método get() para o campo dataAbertura.

e) Um método getDataAberturaFormatada() que retorna a data de abertura da conta como uma String. Você deverá também formatar a data retornada com o objetivo de exibir algo como "12/05/2012".

f) Um método getSaldoFormatado() que retorna o saldo atual da conta como uma String e formatado de acordo com o formato de moeda brasileira, ou seja, algo como "R$ 23.654,00".

g) Um método depositar() que recebe um valor do tipo double e atualiza o saldo atual da conta.

h) Um método sacar() que recebe um valor do tipo double representando o valor a ser sacado. Não permita saques que farão com que a conta fique com saldo negativo.

Escreva uma classe de teste e, em seu método main(), crie uma nova instância da classe ContaBancaria. Experimente efetuar depósitos e saques e observe o comportamento da classe. Sua saída deverá ser parecida com a imagem abaixo:



Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

ContaBancaria.java:

----------------------------------------------------------------------
Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar)

Este código foi útil? Paga um cafezinho pra mim :-(
PIX: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Date;

public class ContaBancaria{
  private double saldo; // saldo atual da conta
  private Date dataAbertura; // data de abertura da conta
  
  // construtor padrão que cria uma nova conta com saldo 0.0 e
  // data de abertura igual à data atual
  public ContaBancaria(){
    this.saldo = 0.0;
    this.dataAbertura = new Date();
    System.out.println("Abertura de conta realizada com sucesso.");
  }

  // retorna a data de abertura da conta como um objeto da classe
  // Date
  public Date getDataAbertura(){
    return this.dataAbertura;
  }

  // retorna a data de abertura da conta como uma string formatada
  public String getDataAberturaFormatada(){
    DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
    return df.format(this.dataAbertura);  
  }
  
  // obtém o saldo da conta
  public double getSaldo(){
    return saldo;
  }

  // permite definir o saldo da conta
  public void setSaldo(double saldo){
    this.saldo = saldo;
  }
  
  // obtém o saldo como uma string formatada de acordo com o formato
  // de moeda brasileira
  public String getSaldoFormatado(){
    NumberFormat nf = NumberFormat.getCurrencyInstance();
    return nf.format(this.saldo);
  }
  
  // efetua um novo depósito na conta
  public void depositar(double quantia){
    this.saldo = this.saldo + quantia;
    System.out.println("Novo depósito efetuado.");
  }
  
  // efetua um saque (CUIDADO! O saldo não pode ficar negativo)
  public void sacar(double quantia){
    // o saque vai deixar a conta com saldo negativo?
    if((this.saldo - quantia) < 0){
      System.out.println("Saldo insuficiente para este saque");  
    }
    else{  
      this.saldo = this.saldo - quantia;
      System.out.println("Novo saque efetuado.");
    }  
  }
}

Veja agora o método main() que nos permite testar a funcionalidade da classe ContaBancaria:

----------------------------------------------------------------------
Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar)

Este código foi útil? Paga um cafezinho pra mim :-(
PIX: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um novo objeto da classe Conta
    ContaBancaria cb = new ContaBancaria();
    // vamos mostrar o saldo atual
    System.out.println("Saldo atual: " + cb.getSaldo());
    System.out.println("Saldo atual formatado: " + cb.getSaldoFormatado());
    // vamos mostrar a data de criação da conta
    System.out.println("Data de abertura: " + cb.getDataAbertura());
    System.out.println("Data de abertura formatada: " + 
      cb.getDataAberturaFormatada());
    
    // vamos efetuar um novo depósito
    cb.depositar(3409.00);
    // vamos mostrar o saldo atual
    System.out.println("Saldo atual: " + cb.getSaldo());
    System.out.println("Saldo atual formatado: " + cb.getSaldoFormatado());
    
    // vamos efetuar um saque
    cb.sacar(500.00);
    
    // vamos mostrar o saldo atual
    System.out.println("Saldo atual: " + cb.getSaldo());
    System.out.println("Saldo atual formatado: " + cb.getSaldoFormatado());
    
    // vamos tentar efetuar um saque maior que o saldo
    cb.sacar(2910.00);
  }
}


Link para compartilhar na Internet ou com seus amigos:

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 32 usuários muito felizes estudando em nosso site.