Trabalho de JAVA

6 respostas
carloshsamaral

Olá pessoal o professor passou alguns trabalhos para fazermos só que eu não estou conseguindo ter a lógica necessária pra isso, gostaria muito da ajuda de vocês e que me ajudassem a resolver esses problemas, então vamos lá:

tenho que fazer uma classe que vai receber algo de um objeto do tipo conta e senha, fazer um método de retirada e saldo, que recebe a senha e confirmar se é a mesma senha armazenada no cartão, e fazer tbm um método que altere a senha desde que receba a antiga como parametro, e implementar uma classe principal para testa-la.

Classe conta
package exerciciooswaldo02;
public class Conta {
    private String nunConta,senha;
    private String changePassword;
    private double retirada,saldo;
    
    
    public Conta(String nunConta, String senha, String changePassword, Double retirada,Double Saldo) {
        setNunConta(nunConta);
        setSenha(senha);
        setChangePassword(changePassword);
        setRetirada(retirada);
        setSaldo(saldo);
    }

    public void setRetirada(double valor) {
        while(senha == senha){
        if(saldo>=valor){
            saldo-=valor;
        }
        else{
            System.out.println("Valor superior da retirada.");
            
        }
        }
    }

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

    public double getRetirada() {
        return retirada;
    }

    public double getSaldo() {
        return saldo;
    }

    public String getChangePassword() {
        return changePassword;
    }

    public void setChangePassword(String changePassword) {
        this.changePassword = changePassword;
    }


    
    
    public String getNunConta() {
        return nunConta;
    }

    public void setNunConta(String nunConta) {
        this.nunConta = nunConta;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
    
    
    
}
Classe principal
package exerciciooswaldo02;

import java.util.Scanner;


public class ExercicioOswaldo02 {
    public static void main(String[] args) {

       Scanner teclado = new Scanner(System.in);
       TelaSaida telaSaida = new TelaSaida();
       
       Conta conta= new Conta("1239","123456",null,null,null);

       
       
       System.out.print("Digite o valor a ser sacado: ");
       conta.retirar(teclado.nextDouble());//aqui está dando erro
       
       
       
    }
}

Quem puder me ajudar ficarei muito grato :D

6 Respostas

J

cadê o método retirar? Qual o erro que está dando?

douglas_vidotto

Cara…ficou muito confusa a sua pergunta. Em que você está precisando de ajuda exatamente?

gilmar.g

Olá, Boa Tarde.

seu metodo construtor da classe Conta havia algumas variaveis diferentes (case sensitive)

na quinta linha do metodo construtor, vc colocou: setSaldo(saldo);

sendo que a variavel passada como parametro é Saldo.

na sua classe principal, voce esta chamando um metodo inexistente na classe conta, o conta.retirada();

quando construida a classe, voce passou saldo como null.

Dê uma olhada como ficou:

public class Conta {  
    private String nunConta,senha;  
    private String changePassword;  
    private double retirada,saldo;  
      
      
    public Conta(String nunConta, String senha, String changePassword, Double saldo) {  
        setNunConta(nunConta);  
        setSenha(senha);  
        setChangePassword(changePassword);
        setSaldo(saldo);  
    }  
  
    public void setRetirada(double valor) {  
        //while(senha == senha){  
        if(saldo>=valor){  
            saldo-=valor;  
        } else{  
            System.out.println("Valor superior da retirada.");  
              
        }  
        //}  
    }  
  
    public void setSaldo(double saldo) {  
        this.saldo = saldo;  
    }  
  
    public double getRetirada() {  
        return retirada;  
    }  
  
    public double getSaldo() {  
        return saldo;  
    }  
  
    public String getChangePassword() {  
        return changePassword;  
    }  
  
    public void setChangePassword(String changePassword) {  
        this.changePassword = changePassword;  
    }  
  
  
      
      
    public String getNunConta() {  
        return nunConta;  
    }  
  
    public void setNunConta(String nunConta) {  
        this.nunConta = nunConta;  
    }  
  
    public String getSenha() {  
        return senha;  
    }  
  
    public void setSenha(String senha) {  
        this.senha = senha;  
    }
}

e na sua classe principal:

public class Main {  
    public static void main(String[] args) {  
  
       Scanner teclado = new Scanner(System.in);  
      // TelaSaida telaSaida = new TelaSaida();  
         
       Conta cc= new Conta("1239","123456","changePassString", 250.0);
  
         
         
       System.out.print("Digite o valor a ser sacado: ");  
       cc.setRetirada(teclado.nextDouble());
         
         
         
    }  
}

comentei alguma coisa no seu código pra testar.
testei assim, e aqui funcionou.
espero ter ajudado, vlw.

carloshsamaral

Obrigado gente me ajudaram muito já, agora vou tentar fazer o restante aqui !! :smiley:

Pessoal agora só não estou conseguindo fazer comparar a senha e mudar a senha =S, alguém poderia me ensinar oque posso fazer ?

J

Em java se vc sobrecarregar o construtor da classe vc deve fornecer tbm o construtor default, pois a jvm só cria um se vc não tiver outro. :wink:
Não entendi ao certo a variável changePassword…

Fiz os metodos sacar e trocarSenha, dá uma olhada. Executa o main e testa. :wink:

Classe Conta

public class Conta {

	private String nunConta;
	private String senha;
	private double retirada;
	private double saldo;

	public Conta() {
		super();
	}

	public Conta(String nunConta, String senha, double saldo) {
		super();
		this.nunConta = nunConta;
		this.senha = senha;
		this.saldo = saldo;
	}

	public void sacar(String senha, String valor) {
		double valorDouble = Double.valueOf(valor.replace(".", "").replace(",", "."));
		/**
		 * Verifica se a senha passada como parametro confere com as senha da
		 * conta
		 * 
		 */
		if(this.senha.equals(senha)) {
			if(saldo >= valorDouble) {
				saldo -= valorDouble;
				System.out.println("Saque realizado com sucesso.");
				System.out.println("Saldo disponível: "+saldo);
			}else {
				System.out.println("Saldo indisponível.");
			}
		}else {
			System.out.println("Senha inválida");
		}
	}

	public void trocarSenha(String novaSenha) {
		senha = novaSenha;
		System.out.println("Senha alterada com sucesso");
	}

	public String getNunConta() {
		return nunConta;
	}

	public void setNunConta(String nunConta) {
		this.nunConta = nunConta;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public double getRetirada() {
		return retirada;
	}

	public void setRetirada(double retirada) {
		this.retirada = retirada;
	}

	public double getSaldo() {
		return saldo;
	}

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

}

Classe Main

public class Main {
	
	public static void main(String[] args) {
		
		Scanner teclado = new Scanner(System.in);
		
		Conta conta = new Conta("1239", "123456", 250.0);
		
		System.out.print("Digite o valor a ser sacado: ");  
	    conta.sacar(conta.getSenha(),  teclado.next());
	    
	    System.out.println("Digite a nova senha: ");
	    conta.trocarSenha(teclado.next());
		
	}

}

Espero ter ajudado.

carloshsamaral

sim ta funcionando, vlw =D

Criado 17 de março de 2012
Ultima resposta 18 de mar. de 2012
Respostas 6
Participantes 4