Erro Compilação - Variável não altera

[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á ! :wink: [/color]

[code]import java.util.Scanner;
public class objConta extends Conta{
public static void main(String[]args){

Scanner ler = new Scanner (System.in);

Conta novaConta = new Conta();

	novaConta.idCliente = 234235;
	novaConta.nomeCliente = "SawaKo";
	novaConta.saldoCliente = 134.00;
	novaConta.subSaldo = saldoCliente - subSaldo;

	System.out.println("Usuario: "+idCliente+"\nNome: "
	+nomeCliente+"\ncom Saldo: "+ saldoCliente);
			
	
	System.out.println("Digite Valor Sacado: ");
	subSaldo = ler.nextInt();
	
				
	System.out.println("Valor Atual: " + saldoCliente);
	 
	
	
	
	
		
	
	




}

}
[/code]

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. :frowning:

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.

Quando a JVM calcula essa operacao:

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…

Por favor, não marque seus tópicos com o óbvio. Se está no fórum de Java Básico, obviamente o tópico é (Básico).

[color=darkred] Opa iae gente boa! :smiley:
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 :cry:
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]

duplicação :frowning: