Java POO – AulaPratica06

Home Fóruns Java Java POO – AulaPratica06

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #121293
      Neander Fontes
      Participante

      – Gostaria de uma avaliação do meu código com as instruções dadas em Java POO – AulaTeórica06:

      » Código abaixo referente a Encapsulamento, Criação da interface com os métodos abstratos:

      package Poo_estudonauta.Encapsulamento;
      
      /*
       * Criação de Interface para Encapsulamento.
       * Implementando Métodos abstratos para a class ContaBanco
       * Métodos: abrirConta(), fecharConta(), depositar(), sacar(), pagarMensalidade();
       */
      public interface InterfaceBanco {
          //Encapsulamento Métodos abstratos:
          public abstract void statusAtual();
          public abstract void abrirConta(String tipoConta);
          public abstract void fechaConta();
          public abstract void depositar(int valorDepositado);
          public abstract void sacar(int valorSacar);
          public abstract void pagarMensalidade();
      }
      

      » Criação do Objeto
      » Configurando os atributos
      » Configurando os métodos específicos funcionais
      » Métodos Getter, Setter e Construct
      » implementando os códigos lógicos @override

      package Poo_estudonauta.Encapsulamento;
      
      public class PraticaEncapsulamento implements InterfaceBanco{
          //Atributos do Objeto ContaBanco:
          private int numConta;
          private String tipoConta;
          private String dono;
          private int saldo;
          private boolean statusConta;
      
          //Método construct:
          public PraticaEncapsulamento() {
              //Se nova conta conta não existe.
              this.saldo = 0;
              //Se nova conta saldo == 0
              this.statusConta = false;
          }
      
          //Métodos Especiais getter e setter:
          public void setNumConta(int numConta) {
              this.numConta = numConta;
          }
          public int getNumConta() {
              return numConta;
          }
      
          public void setTipoConta(String tipoConta) {
              this.tipoConta = tipoConta;
          }
          public String getTipoConta() {
              return tipoConta;
          }
      
          public void setDono(String dono) {
              this.dono = dono;
          }
          public String getDono() {
              return dono;
          }
      
          public void setSaldo(int saldo) {
              this.saldo = saldo;
          }
          public int getSaldo() {
              return saldo;
          }
      
          public void setStatusConta(boolean statusConta) {
              this.statusConta = statusConta;
          }
          public boolean getStatusConta() {
              return statusConta;
          }
      
          //Métodos Abstratos
          @Override
          public void statusAtual() {
              System.out.println("====================== STATUS ATUAL DA CONTA ======================");
              System.out.println("Conta nº: " + this.getNumConta());
              System.out.println("Tipo da conta: " + this.getTipoConta());
              System.out.println("Dono: " + this.getDono());
              System.out.println("Saldo Atual R$" + this.getSaldo());
              if (this.getStatusConta()) {
                  System.out.println("Status da conta: Ativada!!");
              } else {
                  System.out.println("Status da conta: Desativada!!");
              }
              System.out.println("===================================================================");
          }
      
          @Override
          public void abrirConta(String tipoConta) {
              this.setTipoConta(tipoConta);
              this.setStatusConta(true);
              //Se abrir Conta Corrente, recebe 50€:
              if ((tipoConta).equalsIgnoreCase("CC")) {
                  this.setSaldo(50);
                  //Se abrir Conta Poupança, recebe 50€:
              } else if ((tipoConta).equalsIgnoreCase("CP")) {
                  this.setSaldo(150);
              }
              System.out.println("Conta Aberta com Sucesso!!");
          }
      
          @Override
          public void fechaConta() {
              //Se Saldo positivo pedir pra retirar dinheiro
              if(this.getSaldo() > 0) {
                  System.out.println("Conta contém dinheir, precisa zerar");
              //Se Saldo negativo pedir para pagar o débito
              } else if (this.getSaldo() < 0) {
                  System.out.println("Você precisa pagar débito para fechar conta.");
              //Fechar conta somentne se Saldo == 0€
              } else {
                  this.setStatusConta(false);
                  System.out.println("Conta Fechada com Sucesso!");
              }
          }
      
          @Override
          public void depositar(int valorDepositado) {
              //Se status da conta for verdadeiro efetuar depósito:
              if (this.getStatusConta()) {
                  this.setSaldo(getSaldo() + valorDepositado);
                  System.out.println("Depósito realizado com sucesso");
              } else {
                  System.out.println("Abra conta para realizar depósito");
              }
          }
      
          @Override
          public void sacar(int valorSacar) {
              //Se status da conta for verdadeiro e se saldo maior que 0
              if (this.getStatusConta()) {
                  if (this.getSaldo() >= valorSacar) {
                      this.setSaldo(getSaldo() - valorSacar);
                      System.out.println("Valor levantado com sucesso!");
                  } else {
                      System.out.println("Saldo insuficiente.");
                  }
              } else {
                  System.out.println("Abra conta para poder realizar levantamento");
              }
          }
      
          @Override
          public void pagarMensalidade() {
              //Obs: Mensalidade cobrada quando chamar o metodo
              int valorMensalidade = 0;
              //Mensalidade contaCorrente = 12 reais
              if (this.getTipoConta().equalsIgnoreCase("CC")) {
                  valorMensalidade = 12 ;
                  //Mensalidade contaPoupanca = 20 reais
              } else if (this.getTipoConta().equalsIgnoreCase("CP")) {
                  valorMensalidade = 20;
              }
              if (this.getStatusConta()) {
                  if (this.getSaldo() > valorMensalidade) {
                      this.setSaldo(this.getSaldo() - valorMensalidade);
                      System.out.println("Valor de mensalidade " + valorMensalidade + "debitada na conta de " + getDono());
                  } else {
                      System.out.println("Saldo insuficiente");
                  }
              } else {
                  System.out.println("Conta inexistente.");
              }
          }
      }
      

      » Instanciando Objeto:

      package Poo_estudonauta.Encapsulamento;
      
      import Poo_estudonauta.Teste_metodos.ContaBanco;
      
      public class BancoTester {
          public static void main(String[] args) {
              //Método main principal:
              //Inicializando o Objeto ContaBanco e criando nova variável:
              PraticaEncapsulamento conta1 = new PraticaEncapsulamento();
              //Atribuição direto por parâmetro:
              conta1.setNumConta(1111);
              conta1.setDono("Neander");
      
              //Abertura de conta
              conta1.abrirConta("CC");
      
              //Estado atual da conta:
              conta1.statusAtual();
          }
      }
      
    • #121294
      Neander Fontes
      Participante

      Gostaria de fazer alguns adendos a questão acima:
      1) Estou utilizando IDE Intellij IDEA e quando utilizo o método “public abstract void statusAtual();”, não da erro, mas as palavras reservadas somente a “void” fica ativa no código.
      2) Fiquei um pouco insatisfeito, no meu pensamento void é vazio, como e já que a função do método é rescrever o código ele não deveria contor void, corrreto?

    • #121297
      Tutora Jessica
      Moderador

      Ola Neander, seu código esta dando algum erro específico?
      Você poderia nos enviar um print pelo discord?

    • #121300
      Neander Fontes
      Participante

      Pronto já enviei print do código para o discord!
      É como se a escrita do código está errada, a forma de montar a estrutura, não sei formular direito a pergunta por falta de conhecimento, estou desenvolvendo melhor as tecnicas.
      Respondendo sua pergunta, sim o código funciona normalmente, tem retorno dos métodos de acordo com o que é instanciado.

    • #121308
      Tutora Jessica
      Moderador

      Ola Neander, isso você aprende com o tempo, o que te indico é sempre pesquisar melhores formas de programar, e você vai se adaptando a sua forma pessoal, seu código esta como no vídeo desse exercício, conforme o tempo e durante o curso você vai aprendendo novas etapas e novas formas, o importante é seu código estar funcionando conforme é mostrado no exercício, e seu código está funcionando certinho.
      Ainda não recebi o print pelo discord, você colocou na parte de Java mesmo? Nos envie por la por favor 🙏🏼

Visualizando 4 respostas da discussão
  • Você deve fazer login para responder a este tópico.