[color=darkred]Olha eu aqui denovo , tentando , pesquisando , enfim estudando muito de modo autodidata
(assim já deixo os motivos dos possíveis erros “medonhos” que poderão avaliar) :oops:
To assimilando a idéia de herança , poliformismo , OOP em geral e não sei
o porque quando o saldoCliente é subtraído pela subSaldo o saldoCliente permanece com o mesmo valor
Não sei se é porque esta ação deveria ser junto com a criação dos objetos através de método específico,ou é erro de lógica sequencial :x (o que seria imprudente da minha parte)
Enfim , é algo “bobo” mas de grande conjunto de informação e esclarecimento para mim ,
então agradeço desde já ! [/color]
[code]import java.util.Scanner;
public class objConta extends Conta{
public static void main(String[]args){
Olha só, sua classe onde está o main, está extendendo a conta, certo?
As váriaveis saldoCliente e subSaldo, são da classe onde está seu main, e não da novaConta. Elas não devem estar inicializadas, e seu código não atribui nada a elas.
O que quero dizer, é que isso:
novaConta.subSaldo = saldoCliente - subSaldo
deve estar na verdade, executando isso:
novaConta.subSaldo = 0 - 0
Outra coisa é que você está executando o cálculo antes da leitura do teclado.
Seu código está bem confuso na verdade.
Veja se essas dicas ajudam!
Desculpa a intromissão, mas, já que está estudando de forma autodidata, sugiro que pegue um livro, como Deitel por exemplo, ou outro que achar conveniente, e use como um guia. O aproveitamento será muito melhor.
novaConta.subSaldo = saldoCliente - subSaldo
Ela na realidade esta fazendo:
0 - 0 = 0
Isso porque voce nao esta usando as variaveis da classe novaConta, mas as variaveis da classe principal.
Mesmo se voce estivesse usando as variaveis da classe:
novaConta.subSaldo = novaConta.saldoCliente - novaConta.subSaldo
A JVM iria realizar a seguinte operacao:
134 - 0 = 134
Pois, voce declarou a entrada do usuario depois que a operacao foi realizada. Assim a variavel novaConta.subSaldo so teve o valor alterado depois que a conta ja havia sido realizada.
O certo seria:
import java.util.Scanner;
public class objConta extends Conta{
public static void main(String[]args){
Scanner input = new Scanner (System.in);
Conta conta = new Conta();
conta.idCliente = 234235;
conta.nomeCliente = "SawaKo";
conta.saldoCliente = 134.00;
System.out.println("Saldo Atual: " + conta.saldoCliente);
System.out.println("Digite o valor a sacar: ");
conta.saque = Double.parseDouble(input.nextLine());
conta.saldoCliente -= conta.saque;
System.out.println("Identificador: "+ conta.idCliente+"\nNome: " + conta.nomeCliente+"\nSaldo Atual: R$"+ conta.saldoCliente + "\nValor do ultimo saque: R$" + conta.saque);
}
}
Dica : Quando estiver trabalhando com valores monetarios, use sempre variaveis que aceitam ponto flutuante. São elas double, long, float, BigDecimal…
[color=darkred] Opa iae gente boa!
Beleza Cubo , obrigadão pela ajuda e não há intromissão não,
agradeço muito pelas dicas e direcionamento , vou ler este livro sim! ^^
Eu imagino que esteja um pouco confuso , porque sou newbie
que massa Johnny- agora entendi , eu havia mudado pra todo canto da 15 ~ 20
pensando que era erro na lógica em si , mas agora compreendo!
Aee deu certin - soh fiz uma “gambiarra” que não usei a linha 16 , não precisou de conversão
porque já tinha criado na SuperClasse com a variável de ponto flutuante(double)
Obrigadão mesmo pela paciência de todos e pelo auxílio de grande informação!
e Vini foi mal , não queria causar transtorno nenhum :shock: [/color]