Olá pessoal!
Bom eu to começando agora em Java.
Só que o problema é o seguinte. Eu to fazendo um exercício, ele é até do Livro - Java como Programar do Deitel, e nesse exercício ele pede pra criar um metódo que faça um saque. e se a conta não tiver saldo ele imprime "Saldo Insuficiente"
Eu fiz e ate aí beleza.
Compilei deu tudo certo.
Mas o problema é que são duas contas! account1 e account2 na primeira se o valor do saque for maior ele faz tudo certo(ele imprime a mensagem) e no segundo ele deixa a conta com saldo negativo! o que será? é no metódo?
import java.util.Scanner;
public class AccountPrincipal {
public static void main(String args[]) {
Account account1 = new Account(50.00);
Account account2 = new Account(-7.53);
[i] //exibe o saldo inicial de cada objeto[/i]
System.out.printf("Account1 balance: $%.2f\n", account1.getBalance());
System.out.printf("Account2 balance: $%.2f\n", account2.getBalance());
//Cria Scanner para obter a entrada a partir da janela de comando
Scanner input = new Scanner(System.in);
double depositAmmount; //quantia de depósito lida do usuário
double debitNomount; //quantia de saque lida do usuário
System.out.print("Entre com deposito ammount para account1: \n");
depositAmmount = input.nextDouble(); //obtem a entrada do usuário
System.out.printf("\nAdding $%.2f for account1\n",depositAmmount);
account1.credit(depositAmmount); /* adiciona o deposito do usuario a
account1 */
System.out.print("Entre com valor do saque para account1: \n");
debitNomount = input.nextDouble(); //obtem a entrada do usuário
if(debitNomount>account1.getBalance())
System.out.print("Anteção!\n Saldo Insuficiente!\n");
else if (debitNomount<=account1.getBalance())
System.out.printf("\n Debitando $%.2f the account1\n",debitNomount);
account1.debit(debitNomount); /*debita o valor do usuario account1*/
//exibe os saldos
System.out.printf("Saldo de Account1 $%.2f\n", account1.getBalance());
System.out.printf("Saldo de Account2 $%.2f", account2.getBalance());
System.out.print("\nEntre com deposito ammount para account2: \n");
depositAmmount = input.nextDouble();
System.out.printf("Adicionando $%.2f for account1\n",depositAmmount);
account2.credit(depositAmmount);
System.out.print("Entre como valor do saque para account2: \n");
debitNomount = input.nextDouble(); //obtem a entrada do usuário
if(debitNomount>account2.getBalance())
System.out.print("Saldo Insuficiente");
else if(debitNomount<=account2.getBalance())
System.out.printf("Debitando $%.2f the account2\n",debitNomount);
account2.debit(debitNomount); //debita o valor do usuário
//exibe os saldos
System.out.printf("\nSaldo de account1 $%.2f\n",account1.getBalance());
System.out.printf("Saldo de account2 $%.2f\n",account2.getBalance());
} // fim do metodo principal
} //fim da classe principal
+++++++++++++++++++++++++++++++++++++++++++++++++++++
public class Account {
private double balance; //variável de instância que armazena o saldo
//construtor
public Account (double initialBalance)
{
if(initialBalance >0.0)
balance = initialBalance;
} //fim do construtor Account
//credita (adiciona) valor a conta
public void credit (double amount)
{
balance=balance+amount; //adiciona valor a conta
} //fim do metódo credit
public void debit(double nomount)
{
balance=balance-nomount;
}
public double getBalance()
{
return balance; //fornece o valor do saldo ao metódo chamador
} // fim do metódo getbalance
} //fim da classe Account