【发布时间】:2011-10-29 19:12:57
【问题描述】:
我正在上初学者的 Java 课程。这个实验室是让我创建一个类“钱包”来操作代表钱包的数组。钱包包含“contents[]”数组来存储代表纸币的整数。变量“count”保存钱包中纸币的数量。在编写方法(匹配在单独的驱动程序类中提供的方法调用)以初始化钱包并添加货币/更新“计数”之后,我需要将一个实例化钱包的数组转移到另一个。我不知道这将如何工作,因为一个 Wallet 类只与一个名为“myWallet”的钱包打交道,现在我需要一个名为“yourWallet”的新钱包并用“myWallet”的数组值填充它。 //需要注意的是,本课程不允许使用Java API库
到目前为止,我的 Wallet 类看起来像这样:
public class Wallet
{
// max possible # of banknotes in a wallet
private static final int MAX = 10;
private int contents[];
private int count; // count # of banknotes stored in contents[]
public Wallet()
{
contents = new int[MAX];
count = 0;
}
/** Adds a banknote to the end of a wallet. */
public void addBanknote(int banknoteType)
{
contents[count] = banknoteType;
count = count + 1;
}
/**
* Transfers the contents of one wallet to the end of another. Empties the donor wallet.
*/
public void transfer(Wallet donor)
{
//my code belongs here
}
...
驱动程序代码如下所示:
public class Driver
{
public static void main(String args[])
{
Wallet myWallet = new Wallet();
myWallet.addBanknote(5);
myWallet.addBanknote(50);
myWallet.addBanknote(10);
myWallet.addBanknote(5);
System.out.println("myWallet contains: " + myWallet.toString());
// transfer all the banknotes from myWallet to yourWallet
Wallet yourWallet = new Wallet();
yourWallet.addBanknote(1);
yourWallet.transfer(myWallet);
System.out.println("\nnow myWallet contains: "
+ myWallet.toString());
System.out.println("yourWallet contains: "
+ yourWallet.toString());
我想使用 addBanknote() 来帮助解决这个问题,但我不知道如何告诉 transfer() 方法将所有 myWallet 转移到 yourWallet。
我有想法在 transfer() 中做这样的事情:
yourWallet.addBanknote(myWallet.contents[i]);
通过遍历增加 myWallet 内容的 i。这似乎是可怕的错误,但我完全不知道编写这种方法。 如果我的问题不清楚以至于没有人可以提供帮助,我将非常乐意收到有关如何提出更好的问题或如何使用正确的术语进行搜索的建议。 感谢您提供的任何帮助。
【问题讨论】:
标签: java arrays parameter-passing