Dificuldade com Herança - crédito, débito e transferência

2 respostas
emso.exe

Pessoal não estou conseguindo enviar os valores de crédito, débito e transferência com os objetos (doCredito, doDebito e doTransferencia) para a classe conta e efetuar as operações, além do que não enxergo como utilizar o getSaldo... o mais próximo que consegui foi como mostrado abaixo, mas isso não é o ideal... alguém pode mostrar como posso fazer? Estou muito perdido :roll: e obrigatoriamente tenho que seguir essa estutura.

Agradeço a ajuda

Conta
# saldo: float
+ Conta()
+ Conta(float)
+ setSaldo(float)
+ getSaldo(): float
+ doCredito(float)
+ doDebito(float)
+ doTransferencia(Conta, float)

Poupanca
+ Poupanca(float)
+ doCorrecao(float)

CLASSE TesteConta
import java.util.Scanner;

class TesteConta
{
	  public static void main(String[] args)
	  {
			 Conta CC1 = new Conta();
			 Conta CC2 = new Conta();
			 Poupanca CP = new Poupanca();
			 Scanner in = new Scanner(System.in);

			 System.out.println(" Qual o saldo CC1: ");
			 CC1.setSaldo(in.nextLine());

			 System.out.println(" Qual o saldo da CC2: ");
			 CC2.setSaldo(in.nextLine());

			 System.out.println(" Qual o saldo da CP: ");
			 CP.setSaldo(in.nextLine());

			 System.out.println(" Creditado 300 - Saldo de CC1: " + (CC1.doCredito() + 300));
			 System.out.println(" Debitado 200 - Saldo de CC2: " + (CC2.doDebito() - 200));

			 CC1.setSaldo(Float.toString(CC1.doCredito() + 300));
			 System.out.println(" Transferido 400 de CC1 para CC2 - Saldo de CC2: " + (CC1.doTransferencia()));

			 System.out.println(" Saldo corrigido da poupanca: " + CP.doCorrecao());
	  }
}
CLASSE Conta
class Conta
{
	  protected String saldo;

	  public Conta(String _saldo)
	  {
			 saldo = _saldo;
	  }

	  public Conta(){}

	  public void setSaldo(String _saldo)
	  {
			 Float.parseFloat(_saldo);
			 saldo = _saldo;
	  }

	  public float doCredito()
	  {
			 return Float.parseFloat(saldo);
	  }

	  public float doDebito()
	  {
			 return Float.parseFloat(saldo);
	  }

	  public float doTransferencia()
	  {
			 return Float.parseFloat(saldo);
	  }
}
Classe Poupança
class Poupanca extends Conta
{
	  public Poupanca(String _saldo)
	  {
			 super(_saldo);
	  }

	  public Poupanca(){}

	  public float doCorrecao()
	  {
			 return Float.parseFloat(super.saldo) * 1.065f;
	  }
}

2 Respostas

kritiuns

Brow … porque vc usa um saldo String ?

enfim … está gerando um erro ? sim ?? posta ele aqui…

– ahh está funcionando assim mais vc quer ele melhor bom vamos ver ^^

class Conta  
    {  
          private float saldo;  
      
          public Conta(){}           

          public Conta(float _saldo){  
                 saldo = _saldo;  
          }   
      
          public void setSaldo(float _saldo){   
                 saldo = _saldo;  
          }  
      
          public float doCredito(){  
                 //acredito que esse metodo é seja para adicionar valor no saldo seria algo como saldo = saldo + valor; valor é o valor que sera adicionado
                //seria assim: doCredito(float valor); 
                return saldo;  
          }  
      
          public float doDebito(){  
                 //aqui seria quando o usuario gasta ....então seria algo como saldo = saldo - valor; valor é o valor que sera retirado da conta
                 //seria assim: doDebito(float valor);
                 return saldo;  
          }  
      
          public float doTransferencia(){  
                 //aqui acredito que o vc precise passar uma conta para fazer a transferencia ... acho q vc precisa mudar esse método algo como
                 //public void doTransferencia(Conta cc, float valor)
                 // e passar o valor desta conta para a conta que vem como parametro e o valor transferido
                 return saldo;  
          }  
    }

–edit segue as outras classes para te ajudar

class Poupanca extends Conta  
{  
      public Poupanca(String _saldo){  
           //primeiro modifique a chamada desse construtor para public Poupanca(float _saldo)
           super(_saldo);  
      }  
  
      public Poupanca(){}  
  
      public float doCorrecao(){  
             return getSaldo() * 1.065f;  //nessa hora que vc vai usar o getSaldo() ta vendo ... ele vai te retornar o saldo atual da conta...
             //acredito tambem que esse processo tem q ser setando o saldo atual da poupança
            //vc precisa fazer assim .....  setSaldo(getSaldo()*1.065f); //que seria algo como saldo = saldo * juros;
      }  
}
import java.util.Scanner;  
  
class TesteConta{  
      public static void main(String[] args){  
             //variaveis com a primeira minuscula (praticas de programação)
             Conta cC1 = new Conta();  
             Conta cC2 = new Conta();  
             Poupanca cP = new Poupanca();  
             Scanner in = new Scanner(System.in);  
  
             System.out.println(" Qual o saldo CC1: ");  
             cC1.setSaldo(in.nextLine());  //se não me engano tem um in.nextFloat() use ele no lugar do nextLine()
  
             System.out.println(" Qual o saldo da CC2: ");  
             cC2.setSaldo(in.nextLine());   //se não me engano tem um in.nextFloat() use ele no lugar do nextLine()
  
             System.out.println(" Qual o saldo da CP: ");  
             cP.setSaldo(in.nextLine());   //se não me engano tem um in.nextFloat() use ele no lugar do nextLine()
  
             System.out.println(" Creditado 300 - Saldo de CC1: " + (cC1.doCredito(300f)));  //aqui vc passa o valor que vc quer creditar na conta
             System.out.println(" Debitado 200 - Saldo de CC2: " + (cC2.doDebito(200f)));  //aqui vc passa o valor que vc quer debitar na conta o f serve para mudar o 200 de int para float
  
             System.out.println(" Transferido 400 de CC1 para CC2 - Saldo de CC2: " + (cC1.doTransferencia(cC2, 400f)));  //aqui vc passa a conta que vc quer transferir e o valor q será transferido
  
             System.out.println(" Saldo corrigido da poupanca: " + cP.doCorrecao());  //por final a correção da poupança.
      }  
}

no diagrama que vc passou não pede o retorno do saldo nos métodos mais é até interessante deixar com o retorno.
Obs.: algumas coisas só expliquei ou seja vc precisa terminar o codigo

ESTUDE MUITOOOOOO

Abraço!

emso.exe

Consegui finalizar o projeto :D, segue código...

Obrigado pela ajuda!!! :thumbup:

import java.util.Scanner;

class TesteConta
{
      public static void main(String[] args)
      {
             Conta cC1 = new Conta();
             Conta cC2 = new Conta();
             Poupanca cP = new Poupanca();
             Scanner in = new Scanner(System.in);

             System.out.println(" --------------- cC1 --------------- ");
             System.out.println(" Qual o saldo cC1: ");
             cC1.setSaldo(in.nextFloat());
             System.out.println(" + Creditar em cC1: ");
             cC1.doCredito(in.nextFloat());
             System.out.println(" ++ Saldo atual de cC1: " + cC1.getSaldo());
             System.out.println(" - Debitar em cC1: ");
             cC1.doDebito(in.nextFloat());
             System.out.println(" -- Saldo atual de cC1: " + cC1.getSaldo());
             System.out.println("  ");

             System.out.println(" --------------- cC2 --------------- ");
             System.out.println(" Qual o saldo da cC2: ");
             cC2.setSaldo(in.nextFloat());
             System.out.println(" + Creditar em cC2: ");
             cC2.doCredito(in.nextFloat());
             System.out.println(" ++ Saldo atual de cC2: " + cC2.getSaldo());
             System.out.println(" - Debitar em cC2: ");
             cC2.doDebito(in.nextFloat());
             System.out.println(" -- Saldo atual de cC2: " + cC2.getSaldo());
             System.out.println("  ");

             System.out.println(" --------------- cP --------------- ");
             System.out.println(" Qual o saldo da cP: ");
             cP.setSaldo(in.nextFloat());
             System.out.println(" + Creditar em cP: ");
             cP.doCredito(in.nextFloat());
             System.out.println(" ++ Saldo atual de cP: " + cP.getSaldo());

             System.out.println(" $ Correção monetária de 0,65% em cP ");
             cP.doCorrecao(cP.getSaldo());
             System.out.println(" $$ Saldo atual de cP: " + cP.getSaldo());
             System.out.println("  ");

             System.out.println(" - Debitar em cP: ");
             cP.doDebito(in.nextFloat());
             System.out.println(" -- Saldo atual de cP: " + cP.getSaldo());
             System.out.println("  ");

             System.out.println(" $ Correção monetária de 0,65% em cP ");
             cP.doCorrecao(cP.getSaldo());
             System.out.println(" $$ Saldo atual de cP: " + cP.getSaldo());
             System.out.println("  ");

             System.out.println(" ------ Transferência de cC1 ------ ");
             System.out.println("  ");
             System.out.println(" Valor a transferir para cC2: ");
             cC1.doTransferencia(cC2,in.nextFloat());
             System.out.println(" -- Saldo atual de cC1: " + cC1.getSaldo());
             System.out.println(" ++ Saldo atual de cC2: " + cC2.getSaldo());
             System.out.println("  ");
             System.out.println(" Valor a transferir para cP: ");
             cC1.doTransferencia(cP,in.nextFloat());
             System.out.println(" -- Saldo atual de cC1: " + cC1.getSaldo());
             System.out.println(" ++ Saldo atual de cP: " + cP.getSaldo());

             System.out.println(" ------ Transferência de cC2 ------ ");
             System.out.println("  ");
             System.out.println(" Valor a transferir para cC1: ");
             cC2.doTransferencia(cC1,in.nextFloat());
             System.out.println(" -- Saldo atual de cC2: " + cC2.getSaldo());
             System.out.println(" ++ Saldo atual de cC1: " + cC1.getSaldo());
             System.out.println("  ");
             System.out.println(" Valor a transferir para cP: ");
             cC2.doTransferencia(cP,in.nextFloat());
             System.out.println(" -- Saldo atual de cC2: " + cC2.getSaldo());
             System.out.println(" ++ Saldo atual de cP: " + cP.getSaldo());

             System.out.println(" ------ Transferência de cP ------ ");
             System.out.println("  ");
             System.out.println(" Valor a transferir para cC1: ");
             cP.doTransferencia(cC1,in.nextFloat());
             System.out.println(" -- Saldo atual de cP: " + cP.getSaldo());
             System.out.println(" ++ Saldo atual de cC1: " + cC1.getSaldo());
             System.out.println("  ");
             System.out.println(" Valor a transferir para cC2: ");
             cP.doTransferencia(cC2,in.nextFloat());
             System.out.println(" -- Saldo atual de cP: " + cP.getSaldo());
             System.out.println(" ++ Saldo atual de cC2: " + cC2.getSaldo());
      }
}
public class Conta
{
      protected Float saldo;

      public Conta(Float _saldo)
      {
             saldo = _saldo;
      }

      public Conta() { }

      public void setSaldo(Float _saldo)
      {
             saldo = _saldo;
      }

      public float getSaldo()
      {
             return saldo;
      }

      public float doCredito(Float _valor)
      {
             return saldo += _valor;
      }

      public float doDebito(Float _valor)
      {
             return saldo -= _valor;
      }

      public void doTransferencia(Conta contaDestino, Float _valor)
      {
             doDebito(_valor);
             contaDestino.doCredito(_valor);
      }
}
public class Poupanca extends Conta
{
      public Poupanca(Float _saldo)
      {
             super(_saldo);
      }

      public Poupanca() { }

      public float doCorrecao(Float _saldo)
      {
             return saldo = saldo * 1.065f;
      }
}
Criado 19 de maio de 2011
Ultima resposta 20 de mai. de 2011
Respostas 2
Participantes 2