Duvida em um codigo basico

11 respostas
B

Pessoal, me desculpem , mas sou iniciante no aprendizado do java, eu estou fazendo um teste de clases e metodos , o programa é compilado nao dar nenhum erro, mas não faz o que era pra fazer.

eu tenho duas classes 1- conta onde declaro dois metodos saca() e deposita() e outra programa que é instaciado e recebe os dados , porem na hora que deveria chamar o metodo e alterar nao acontece nada, já tentei alterar mas nao consegui resolver. sei que deve ser simples mas como nao conheco esto apanhando se vocês puderem me ajudar eu agradeco.

segue o codigo:

public class conta  {

int numero;

String nome;

double saldo;

double limite;

double saca;

double deposita; 			

public void  saca ( double quantidade ) 	{

double novosaldo=this.saldo - quantidade;

this.saldo=novosaldo;

System.out.println(novosaldo);

}

public void deposita (double quantidade) {

this.saldo += quantidade;

}
}
public class programa {

public  static  void main (String args [] ) {

conta minhaconta;

minhaconta=new conta();

minhaconta.nome=DUKE;

minhaconta.saldo=10;

minhaconta.saca=(200);

minhaconta.deposita=(500);

System.out.println(SALDO ATUAL=>+ minhaconta.saldo);
}
				
			}

o resultado é sempre o valor da variaval saldo = 10.

obrigado.

Bob.

11 Respostas

I

e porque voce está passando como argumento para um double(Double quantidade) um valor referente a int , java não coverte de int para double diretamente ,
faça o seguinte

minhaconta.saca(200.00)…não há nescessidade do sinal de igual pois vc ja está cahamando o metodo…
minhaconta.deposita(500.00)

veja se vai dar certo e retorne pra gente o q deu

abç…

caique_castanho

Só algumas dicas, você deve construir as classes no modelo Java Beans, tal modelo segue os bons preceitos da orientação a objetos como encapsulamento, as suas classes ficariam assim:

public class Conta {
    private float saldo;
    private float limite;
    private String nome;

    public float getSaldo()
    {
        return saldo;
    }

    public void setSaldo(float saldo)
    {
        this.saldo = saldo;
    }

    public float getLimite()
    {
        return limite;
    }

    public void setLimite(float limite)
    {
        this.limite = limite;
    }

    public String getNome()
    {
        return nome;
    }

    public void setNome(String nome)
    {
        this.nome = nome;
    }

    public void saca(float quantidade)
    {
        setSaldo(getSaldo() - quantidade);
    }
    
    public void deposita(float quantidade)
    {
        setSaldo(getSaldo() + quantidade);
    }
    
    public static void main (String args [] )
    { 
        Conta minhaConta = new Conta();
        minhaConta.setSaldo(200);
        minhaConta.deposita(200);
        minhaConta.saca(400);
        System.out.println("SALDO ATUAL=>"+ minhaConta.getSaldo()); 

    } 


}

Perceba o modo correto de chamar os métodos, esse era o seu erro…T+, bons estudos…

Marky.Vasconcelos

Igorleal:
e porque voce está passando como argumento para um double(Double quantidade) um valor referente a int , java não coverte de int para double diretamente ,
faça o seguinte

minhaconta.saca(200.00)…não há nescessidade do sinal de igual pois vc ja está cahamando o metodo…
minhaconta.deposita(500.00)

veja se vai dar certo e retorne pra gente o q deu

abç…

Esse exercicio é da apostila FJ-11 da Caelum depois ela ensina sobre encapsulamento.

Não se preocupe com isso agora.

Luiz_Aguiar

Bem vindo ao GUJ!

Dê uma olhadinha nesse tópico por favor, para ver como postar corretamente seus tópicos, obrigado!

http://www.guj.com.br/posts/list/50115.java

I

Mark_Ameba

Esse exercicio é da apostila FJ-11 da Caelum depois ela ensina sobre encapsulamento.

Não se preocupe com isso agora.

amigo …
nao aprendi assim…(minhaconta.sacar=…)…
ja prendi diretamente…minhaconta.sacar(200.0)
o amigo d ebaxo em sua resposta q envolveu questões de encapsulamento…
private…
get…
set…

encapsulamento=encapsular…proteger
encapsulamento se refere as declarações de variáveis da classe como private para impedir u elas sejam acessadas direamente …gerando desorganização ao código…

em nenhuma citação minha nesse tópico me referi a encapsulamento…

Marky.Vasconcelos

Não quis dizer que a apostila ensina

minhaconta.sacar=(200);

Mas sim que os modificadores de acesso e Getters e Setters são ensinados mais pra frente.

Marky.Vasconcelos


É que eu ia escrever [ quote ] no código que voce mandou e não no que voce disse. Realmente pareceu que eu falei que esta certo fazer isso:

minhaConta.saca=(200);

Foi sem querer =/

I

Mark_Ameba:

É que eu ia escrever [ quote ] no código que voce mandou e não no que voce disse. Realmente pareceu que eu falei que esta certo fazer isso:

minhaConta.saca=(200);

Foi sem querer =/

ta joia amigao mas quem escreveu código foi o caique_castanho

abç

Mr_Smith

Como que faço pra ler e escrever de em arquivo.txt existente na qual tenho
a seguinte matriz:

4
0 1 0 0
1 0 4 2
0 4 0 0
0 2 0 0

Só preciso desta dica!!!
valew!!

Marky.Vasconcelos

Use a classe Scanner e passe um File com o arquivo como argumento para ler.

E a classe FileWriter para escrever.

B

Pessoal , emprimeiro lugar muito obrigado a todos pela ajuda! com a ajuda de vocês consegui enxergar o erro. Como o Igorleal disse eu apenas retire o sinal de = do codigo e funcionou. Obrigado Igor, obrigado Caique_castanho pelas dicas de como usar o modelo de classe java beans, obrigado ao Mark_ameba e ao moderador.Muito obrigado mesmo pela força.

Abracos.

Bob.

Criado 31 de março de 2008
Ultima resposta 31 de mar. de 2008
Respostas 11
Participantes 6