【发布时间】:2011-11-10 00:04:27
【问题描述】:
希望有人能帮助我,或为我指明正确的方向。 我有一个包含多个条目的文本文件
CUST001,约翰·琼斯,555 0505,19/09/1981
CUST002, 彼得帕克, 555 1234, 0.2
CUST003,迈克尔·迈克尔斯,555 4321,19/09/1981
等等
我有一个抽象超类,其中包含用于共享属性和子类的构造函数和访问器。 然后我有另一个类,也有构造函数和访问器。
我读入每一行,并将其拆分为“,”并将其读入一个临时数组。然后我创建我的空数组以将我的超类中的属性读入其中,并使用构造函数创建各种对象。
我遇到的问题: 带有构造函数的常规类 - 完美地工作。我在创建对象后打印出我的对象,它们就在那里。
虽然我的子类,它只返回值 null、null、null 因此,我假设我的超类和子类存在问题。
使用具体的类构造函数创建对象:
Product[] prod = new Product[20]; BufferedReader inFile = new BufferedReader (new FileReader("product.txt")); String inputLine = inFile.readLine(); for (int i = 0; i < 6 ; i++) { String[] tmpProd = inFile.readLine().split(","); prod[i] = new Product( tmpProd[0], tmpProd[1], tmpProd[2], Float.parseFloat(tmpProd[3]), tmpProd[4].charAt(0)); }
“尝试”从超类 (Customer) 和子类 (STCustomer) 创建对象:
Customer[] stdCust= new STCustomer[20]; BufferedReader inFileCust = new BufferedReader (new FileReader ("customer.txt")); String inputCust = inFileCust.readLine(); for (int i = 0; i < 6; i++) { String[] tmpCust = inFileCust.readLine().split(","); GregorianCalendar d = new GregorianCalendar(year, month -1, date); stdCust[i] = new STCustomer( tmpCust[0], tmpCust[1], Long.parseLong(tmpCust[2]), d);//the block to convert date works - omitted here }
这是创建对象的正确方法吗?
Customer[] stdCust= new STCustomer[20];
【问题讨论】:
-
您能否将问题中“普通类”的所有措辞重命名为“子类”或“超类”?我不知道普通类是什么。在某些地方,它听起来像是指超类,而在其他地方,它听起来像是指子类。
-
您好 Georges,为您的困惑道歉。我创建了两个类。一个是具体类,另一个是带有子类的抽象类。我正在尝试使用子类从文本文件创建对象。对具体类 (Product) 执行相同操作使我能够成功地使用 txt 文件中的值创建对象。这就是我所坚持的。看来我错过了一些明显的东西,因为我没有看到其他人有这些困难。
标签: java arrays class object abstract