【发布时间】:2014-04-14 03:58:08
【问题描述】:
有没有人介意澄清一下我如何才能让 for 循环递增到我提出的代码块中的下一个对象?我知道外部是递增一,但是,像这段代码一样,在 for 循环中递增一,因为在这种情况下,每个元素都代表一个对象。建议将不胜感激!
// create object
AccountWithInterface accountTemplate = new AccountWithInterface(name, balance, id, rate);
// declare array of 3 objects
AccountWithInterface[] accountArray = new AccountWithInterface[3];
// create each accountArray object
for(int i = 0; i < accountArray.length; i++) {
// copy each element (object) from accountTemplate
accountArray[i] = (AccountWithInterface)accountTemplate.clone();
// set balance for first object
accountArray[i].setBalance(85900.32);
// increment to next object/set object
accountArray[i].setBalance(3250.99);
System.out.println(accountArray[i].toString());
}
// My output currently keeps printing:
ID: 1122
Created: 04/13/14
Owner: Bob
Annual Rate: 4.50%
Balance: 3,250.99
ID: 1122
Created: 04/13/14
Owner: Bob
Annual Rate: 4.50%
Balance: 3,250.99
ID: 1122
Created: 04/13/14
Owner: Bob
Annual Rate: 4.50%
Balance: 3,250.99
【问题讨论】:
-
实际上,关于如何递增到下一个对象的澄清是我认为我在这里真的不理解的。
-
accountArray中有空值。 -
“增加下一个对象”是什么意思...?您正在递增
i,因此通过访问循环内的数组索引[i],您正在遍历数组。i是 0,然后是 1,然后是 2。这不是你想要的吗? -
嗯...有点。总的来说,我的目标是保持每个对象分开并更改所有 3 个对象的平衡,然后使用我的 toString 方法打印出每个对象的平衡。
-
考虑到每个对象都是帐户模板的克隆,并且您对每个对象执行相同的操作,因此它们看起来都相似也就不足为奇了。 :P 如果你想对每个人做不同的事情,那么在循环中做这件事有点违背了目的——除非你有一系列余额并做类似
accountArray[i].setBalance(balances[i]);的事情。