我有一个作业需要我写几个类,现在我终于用其中的main方法写了这个类。下面是这个类的说明:
对于AccountDriver类,创建:
- 这个类的文件名应该是:AccountDriver.java
- main()方法
- 一个ArrayList,用于存储Savings或Checking类的10个对象。使用2%(.02)储蓄账户利率。使用账号100到109。使用1000到
- 一个名为buildSavings()的方法,通过使用多态性。此方法应创建一个新的Savings对象并填写相应的数据通过使用构造函数调用。对象的类型应为Account类型,但应为实例化为类型Savings(多态)
- 想想应该如何测试。设计测试数据,彻底测试类和继承层次结构。至少,您应该测试5个对象实例化
- 实例化后,此方法应将储蓄帐户存储在上面创建的ArrayList中。按升序存储储蓄帐户
我已经编写了Account、Checking和Savings类,所有这些类都有两个构造函数,包括默认构造函数(我已经编写好了)。支票和储蓄都扩展了账户。Account有两个受保护的值,accountNum(int)和accountBal(double)。储蓄增加了一种私人双重利率。Account和Savings的价值观有getter和setter。Checking和Savings有@Override(对我来说是一个新概念)toString方法。它们真的很简单。
现在我对这个AccountDriver类有问题,因为我应该做的所有事情都是新的。
我想从创建buildSavings()方法开始,但创建一个类型为Account但实例化为Savings的对象的说明真的很奇怪。我以前从来没有这样做过,我不明白我该怎么写——也许用instanceOf?这对我来说也是新鲜事。
我还对需要放入Savings对象的所有信息都包含在ArrayList指令中这一事实感到困惑,所以我只写了以下内容:
ArrayList<Savings> savingsAccount = new ArrayList<>();
但我不认为现在是这样,因为我应该制作这个buildSavings()方法。那么,在制作ArrayList时,我会调用那个方法吗?还是在我创建ArrayList之后是这样?使用.add将对象添加到ArrayList时,是否使用buildSavings()方法?
这就是我为buildSavings()方法所能收集到的全部内容。我显然不知道多态性是如何工作的,我的书也不清楚任何特定的语法。
public Account buildSavings () {
Savings account = new Savings (100, 0.2);
// what will I be returning? Why can't I put a for loop here to fill up the objects?
// The two parameters are 100 (accountNum) and 0.2 (interest rate). How do I
// set the account balance when the default constructor takes no parameters and
// the instructions specify that the second contructor only take the account number and
// interest rate as parameters?
}
如果有人能给我举个例子来澄清这些奇怪的指示,那就太好了。我也会给我的老师发电子邮件,但现在是周末,所以我不能真正去上班。
感谢
虽然有点模糊,但方向使用的复数多于单数,所以我怀疑你的老师希望你在buildSavings方法中创建数组。类似这样的东西:
ArrayList<Account> accounts = new ArrayList();
for (int i = 100; i <= 109; ++i) {
accounts.add(new Savings(i, 0.2));
}
return accounts;
Savings类满足Account类的所有要求,这就是为什么可以在需要Account类的任何地方使用Savings类。请注意,反之亦然的论点不成立。储蓄类具有Account类没有的利率。要了解更多关于多态性的信息,您可以查看oracle的文档或简单地在谷歌上搜索。