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.