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 JavaQuantidade 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); } } |
![]() |
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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |