所以我有一个PersonData类,其中包含:名字,姓氏,地址和电话号码。
我应该创建一个名为CustomerData的子类,该子类添加一个客户编号,一个关于客户是否希望出现在邮件列表和交易列表中的布尔值。事务列表应该是长整数的arrayList。
以下是一些说明: 编写一个非参数构造函数,该函数将所有变量(包括继承的变量)设置为空字符串,并将事务设置为空ArrayList(但不为null!) 编写一个构造函数,该构造函数将有关客户的所有数据作为参数(名称,地址等,总共7个参数),并初始化成员变量。在使用交易字段时,请不要忘记创建作为参数提供给您的对象的深层副本。
这是我用于PersonData的代码:
public class CustomerData extends PersonData implements Cloneable {
static int nextCustomerNumber = 0;
private int customerNumber;
boolean mailingList;
ArrayList<Long> transactions;
/**
* No-arg constructor
*/
public CustomerData() {
super();
customerNumber = nextCustomerNumber++;
mailingList = true;
transactions = new ArrayList<Long>();
}
/**
* Constructor that takes in all the values used
*
* @param lname last name that is inherited from PersonData
* @param fname first name that is inherited from PersonData
* @param addy address that is inherited from PersonData
* @param number phone number that is inherited from PersonData
* @param mList the mailing list boolean
* @param t the array list for transactions
*/
public CustomerData(String lname, String fname, String addy, String number, boolean mList, ArrayList<Long> t) {
super(lname, fname, addy, number);
customerNumber = nextCustomerNumber++;
mailingList = mList;
transactions = new ArrayList<>();
for (int i = 0; i < t.size(); i++) {
transactions.add(t.get(i));
}
}
在我的主文件CustomerDemo中,我试图用参数调用构造函数,但出现以下错误(在Netbeans中),表达式的非法开头,类型的非法开头和“;”预期的。
代码如下:
public class CustomersDemo {
public static void main(String[] args) {
CustomerData customer = new CustomerData();
CustomerData customer2 = new CustomerData("Wayne", "Bruce", "Gotham City", "548-547-5846", true, {1,2,3});
}
我想这与我试图将数据放入arrayList的方式有关。我看过几个站点,在我的教科书中,我所看到的都是使用.add和.set将它们放入arraylist中的。
不确定该怎么做,任何建议都会受到赞赏。
答案 0 :(得分:0)
首先,您不应从输入中要求任何形式的实现。最好改用接口或抽象类。
public CustomerData(String lname, String fname, String addy, String number, boolean mList, List<Long> t) {
....
}
现在,您可以使用方便的Arrays.asList
方法。
CustomerData customer2 = new CustomerData("Wayne", "Bruce", "Gotham City", "548-547-5846", true, Arrays.asList(1,2,3));
另请参阅: