Melhor forma pra emitir mensagem de erro!

6 respostas
Djheison

Galera… nesse sistema bancário do curso abaixo preciso emitir uma mensagem quando o valor do saque for menor que o saldo. Qual a melhor forma de fazer isso? Na classe principal ou na classe conta através de um método?

Este é o código:

package Teste;

public class Cliente {
	String nomeCliente;
	String telefone;
	String cpf;
	
	public String getNomeCliente(){
		return nomeCliente;
	}
	public void setNomeCliente(String nome){
		this.nomeCliente = nome;
	}
	public String getTelefone(){
		return telefone;
	}
	public void setTelefone(String telefone){
		this.telefone = telefone;
	}
	public String getCpf(){
		return cpf;
	}
	public void setCpf(String cpf){
		this.cpf = cpf;
	}

}



package Teste;

public class Conta extends Cliente {
	
	double credito;
	double debito;
	double saldo;
	String dadosConta;
	
	public double getCredito(){
		return credito;
	}
	public void setCredito(double credito){
		this.saldo = this.saldo + credito;
	}
	public void setDebito(double debito){
		if(debito < this.saldo){
		    this.saldo = this.saldo - debito;
		}
	}
	public double getSaldo(){
		return saldo;
	}
	public double getDebito(){
		return debito;
	}
	public String  getDadosConta(){
		return " Nome: "+getNomeCliente()+"\n CPF: "+getCpf()+"\n Saldo: " +getSaldo();
	}
	public void setDadosConta(String valor){
		
		this.dadosConta = valor;
	}
	
	
	

}




package Teste;

public class ContaEspecial extends Conta {
	
	double limite;
	String dadosContaCliente;
	
	public double getLimite(){
		return limite;
	}
	public void setLimite(double valor){
		this.limite = valor;
		super.saldo = this.limite+super.credito+super.saldo;
	}
	public void setSaldo(double valor){
		this.saldo = this.limite + super.credito + super.saldo;
	}
	public double getSaldo(){
		return saldo;
	}
	public String getDadosContaCliente(){
		return " Nome: "+getNomeCliente()+"\n CPF: "+getCpf()+"\nLimite de Crédito: "+getLimite()+"\n Saldo Total: " +getSaldo();
	}

}






import javax.swing.*;

public class Banco {
	public static void main(String[] args) {
		int opcaoConta = Integer.parseInt(JOptionPane.showInputDialog("1 - CONTA     2 - CONTA ESPECIAL"));//Mensagem para opção de conta
		
		if(opcaoConta==1){//Varaiavel que recebe opção de conta
			
		    Conta c1 = new Conta(); //Construção do Objeto Cliente
		    int opcao; //varialvel opcao
        
		    c1.setNomeCliente(JOptionPane.showInputDialog("Nome: "));//Metodo setNome recebe valor
		    c1.setCpf (JOptionPane.showInputDialog("CPF: "));//Metod setCpf recebe valor
		    c1.setTelefone (JOptionPane.showInputDialog("Telefone: "));//Metodo setTelefone recebe valor
		
		    opcao = Integer.parseInt(JOptionPane.showInputDialog("1 - DEPOSITAR     2 - SACAR"));//variavel "opcao" recebe opção de operação do usuário
		    if(opcao==1){ //se "opcao" igual a 1 - Deposito
			    c1.setCredito( Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//setCredito recebe o valor do depósito
		    }
		    if(opcao==2){ //se "opcao" igual a 2
			    c1.setDebito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//setDebito recebe o valor do saque   
			}      
		    JOptionPane.showMessageDialog(null,c1.getDadosConta());//Imprime dados da conta  
		}
		
		if(opcaoConta==2){
		
		    ContaEspecial ce1 = new ContaEspecial();
            int opcao; //varialvel opcao
            ce1.setLimite(600);
            ce1.setNomeCliente(JOptionPane.showInputDialog("Nome: "));//Metodo setNomeCliente recebe valor
            ce1.setCpf(JOptionPane.showInputDialog("CPF: "));//Metodo setCpf recebe valor
            ce1.setTelefone(JOptionPane.showInputDialog("Telefone: "));//Metodo setTelefone recebe valor
		
            opcao = Integer.parseInt(JOptionPane.showInputDialog("1 - DEPOSITAR     2 - SACAR    3 - SALDO"));//variavel "opcao" recebe opção de operação do usuário
		    if(opcao==1){ //se "opcao" igual a 1 - Deposito
			    ce1.setCredito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//metodo setCredito recebe valor
		    }
		    if(opcao==2){ //se "opcao" igual a 2
			
			    ce1.setDebito(Double.parseDouble(JOptionPane.showInputDialog("VALOR: ")));//saldo recebe valor
			    /*if(ce1.saldo<0){
			    	ce1.saldo = ce1.limite;
				    JOptionPane.showMessageDialog(null,"Saldo Insuficiente.\nSeu saldo atual é de "+ce1.saldo);
			    }else
				    ce1.saldo = ce1.saldo-ce1.debito;*/
		    }
		    /*if(opcao==3){
			    String result = (" Nome: "+ce1.nomeCliente+"\n CPF: "+ce1.cpf+"\n Saldo: " +ce1.saldo);
			    JOptionPane.showMessageDialog(null, result);	
		    }
		    if((opcao==1 || opcao==2)&ce1.saldo>0){
		    String result = (" Nome: "+ce1.nomeCliente+"\n CPF: "+ce1.cpf+"\n Limite: "+ce1.limite+"\n Saldo Total: " +ce1.saldo);
		    JOptionPane.showMessageDialog(null, result);
		    }*/
		    JOptionPane.showMessageDialog(null,ce1.getDadosContaCliente());//Imprime dados da conta
		}	
        
		
	}
		
		
}

Até comecei mexer no método setDebito da classe Conta, mas não consegui
Desde já agradeço.
Aguardo.

6 Respostas

RobsonFagundes

ja pensou em um JOptionPane.showMessageDialog
no if q verifica o saldo…

leobr84

pq uma parte do código da classe banco tá comentada?

leobr84

sim, mas dar pra botar uma mensagem no método setDebito como robson deu o toque ae hahehehhe

Djheison

A parte do código comentada foi devido modificações que eu fiz e não sabia se ia dar certo… mas ja apaguei
Galera… Obrigado pela idéia.
t+

thinet

no setDebito, você não deveria colocar a opção do if como menor ou igual?

E a herança não está estranha ai, tipo um cliente não é uma conta, um cliente têm uma conta.

Sou iniciante em Java também, e longe de querer te criticar, mais por exemplo os métodos cpf e telefone não são coisas do cliente e não da conta?

Se falei alguma besteira, por favor desconsiderar ok!

edit: dESCONSIDERAR A PARTE EM NEGRITO, AGORA QUE VI QUE SE PEGOU NA HERANÇA ESSES MÉTODOS

Djheison

Trinet
Na Questão do setDebito, obrigado, eu corrigi.
A Class Conta é extends de Cliente porque cada conta tem um nome diferente, ou seja, um cliente diferente.
Dessa forma ela tem também cpf, telefone diferentes. Acredito que se não fosse dessa forma como seria possível distinguir as contas.
Obrigado pelo comentário.

Criado 26 de junho de 2008
Ultima resposta 27 de jun. de 2008
Respostas 6
Participantes 4