Bom dia galera, estou fazendo um exercício que manda escrever um código para conta bancária,
usando uma classe além do método Main, para treinar os conceitos da POO. O código do livro ficou assim:
[code]/Classe Account (Conta Bancária) com um construtor para
inicializar a variável de instância balance./
public class Account
{
private double balance;//variável de instância que armazena o saldo.
//Construtor
public Account(double initialBalance)
{
//Valida que initialBalance é maior que 0.0;
//se não, o saldo é inicializado como o valor padrão 0.0
if (initialBalance > 0.0)
balance = initialBalance;
}//Fim do construtor Account
//Credita (adiciona) uma quantia à conta
public void credit(double amount)
{
balance = balance + amount;//Adiciona quantia ao saldo
}//Fim do método credit
//Retorna o saldo da conta
public double getBalance()
{
return balance; //Fornece o valor de saldo ao método chamador
}//Fim do método getBalance
}// Fim da classe Account.[/code]
[code]//Cria “Instancia” e manipula o objeto Account.
import java.util.*;
public class AccountTest
{
//Método principal inicia a execução do aplicativo Java.
public static void main(String[] args)
{
Account account1 = new Account(50.00); //Cria o objeto Account
Account account2 = new Account(-7.53); //cria o objeto Account
//Exibe saldo inicial de cada objeto
System.out.printf("Saldo da conta 01: $%.2\n",
account1.getBalance());
System.out.printf("Saldo da conta 02: $%.2\n",
account2.getBalance());
//Cria Scanner para obter entrada a partir da janela de comando
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
double depositAmount;//Quantia de deposito lida do usuário
System.out.print("Entre com a quantida de depósito para conta 01:");//Prompt
depositAmount = input.nextDouble();//Obtém a entrada do usuário
System.out.printf("\nadding %.2f de saldo na conta 01\n\n",
depositAmount);
account1.credit(depositAmount);//Adiciona o saldo Account1
//Exibe os saldos
System.out.printf("Saldo da conta 01: $%.2\n",
account1.getBalance());
System.out.printf("Saldo da conta 02: $%.2\n",
account1.getBalance());
System.out.print("Entre com a quantia de depósito para conta 02:");//prompt
depositAmount = input.nextDouble();//Obtém a entrada do usuário
System.out.printf("\nadding %.2f to account2 balance\n\n",
depositAmount);
account2.credit(depositAmount);//Adiciona saldo na conta 02
//Exibe os saldos
System.out.printf("Saldo Conta 01: $%.2f\n",
account1.getBalance());
System.out.printf("Saldo conta 02: $%.2f\n",
account2.getBalance());
}
}[/code]
A saída gerada pela execução deste código é:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '.'
at java.util.Formatter.checkText(Formatter.java:2547)
at java.util.Formatter.parse(Formatter.java:2533)
at java.util.Formatter.format(Formatter.java:2469)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at AccountTest.main(AccountTest.java:13)
Creio que o erro seria no tratamento do método “getBalance” “$%.2f” Honestamente, eu não entendi muito bem, e no livro,
não especifica, nem nos apêndices.
Só me restou recorrer aos mestres do GUJ ^^’.