J'ai juste ce que je suis sûr est très facile et petite question ... Alors disons que j'ai une classe de compte comme suit:boucle Iterator avec tableau
import java.text.NumberFormat;
public class Account
{
private final double RATE = 0.03; // interest rate of 3.5%
private long acctNumber;
private double balance;
private String name;
//-----------------------------------------------------------------
// Sets up the account by defining its owner, account number,
// and initial balance.
//-----------------------------------------------------------------
public Account (String owner, long account, double initial)
{
name = owner;
acctNumber = account;
balance = initial;
}
//-----------------------------------------------------------------
// Deposits the specified amount into the account. Returns the
// new balance.
//-----------------------------------------------------------------
public double deposit (double amount)
{
balance = balance + amount;
return balance;
}
//-----------------------------------------------------------------
// Withdraws the specified amount from the account and applies
// the fee. Returns the new balance.
//-----------------------------------------------------------------
public double withdraw (double amount, double fee)
{
balance = balance - amount - fee;
return balance;
}
//-----------------------------------------------------------------
// Adds interest to the account and returns the new balance.
//-----------------------------------------------------------------
public double addInterest()
{
balance += (balance * RATE);
return balance;
}
//-----------------------------------------------------------------
// Returns the current balance of the account.
//-----------------------------------------------------------------
public double getBalance()
{
return balance;
}
//-----------------------------------------------------------------
// Returns a one-line description of the account as a string.
//-----------------------------------------------------------------
public String toString()
{
NumberFormat fmt = NumberFormat.getCurrencyInstance();
return acctNumber + "\t" + name + "\t" + fmt.format(balance);
}
}
Et je crée la classe Banque montré ici ...
public class Bank
{
Account[] accounts;// = new Account[30];
int count=0;
String name;
public Bank(String name)
{
this.name = name;
accounts = new Account[30];
}
public void addAccount(Account acct)
{
accounts[count] = acct;
count++;
}
public void addInterest()
{
//for (Account acct : accounts)
//acct.addInterest();
for(int i = 0; i < count; i++)
accounts[i].addInterest();
}
}
Je reçois une erreur si je tente d'utiliser la méthode avec le pour (compte ACCT: comptes) addInterest() boucle vous voir en commentaire. Quelqu'un peut-il me donner un aperçu de la raison de cette situation? Je pensais que ces boucles étaient équivalentes. Merci d'avance.
quelle erreur recevez-vous? – hvgotcodes
appelez-vous jamais addAccount()? Avec le code que vous affichez, vous avez déclaré le tableau de comptes mais vous n'avez instancié aucun objet Account. Si c'est l'erreur, vous obtiendrez un NulPointerExxception .... – atk
En guise de commentaire général, vous devriez éviter les tableaux comme la peste. Utilisez ['Collections'] (http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html) (dans ce cas, un [' Set'] (http: // docs. oracle.com/javase/6/docs/api/java/util/Set.html), qui, parmi beaucoup d'autres fonctionnalités, augmente automatiquement en taille lorsque vous leur ajoutez '' .add() '. – Bohemian