我目前正在研究一个库存程序,涉及一维数组,2个类(Store和Book)以及其他一些方法,如方法和构造函数。创建Java类
我猜你可以说是主类的Store类应该包含main()方法,应该从文件中读取购买清单,使用适当的消息处理每次购买(ISBN号码,数量,价格或问题(例如缺货或没有)),存储最多15本Book类型书籍的阵列,库存文件中读取的方法,处理购买的方法,以及在关闭时打印库存以及销售的书籍数量和结束时的金额。 Book类包括书对象(每个书对象包含ISBN String,price double和副本int),构造函数,getter和setter以及打印信息的方法。
由于数组应该是在Store类中创建的,但是是Book类型的,并且由书籍对象组成(我假设?),所以我很难找出如何正确执行此操作将价值分配给isbn,价格,复制变量,正确设置构造函数等)。
更新 我现在有的主要问题是能够从我的printInfo方法打印图书对象。我在该方法的打印语句中收到错误消息,指出“无法找到符号。符号:书”。我无法真正了解该程序是否真正在运行,因为在我开始添加其他一些方法来完成其他依赖于本书的事情之前,我需要在这一点上看到(打印出来的书目标)。对象是正确的。
这里是我想出了迄今为止代码:
的存储类:
import java.util.Scanner;
import java.io.*;
public class Store {
public static void main(String[] args) throws Exception {
Book[] books = readInventory();
for (Book : books) {
System.out.printf("ISBN: %s, Price: %f, Copies: %d%n",
book.getISBN(), book.getPrice(), book.getCopies());
}
}
public static Book[] readInventory() throws Exception {
Book[] books = new Book[15];
java.io.File file = new java.io.File("../instr/prog4.dat");
Scanner fin = new Scanner(file);
String isbn;
double price;
int copies;
while (fin.hasNext()) {
for(int i = 0; i < books.length; i++) {
isbn = fin.next();
price = fin.nextDouble();
copies = fin.nextInt();
Book book = new Book(isbn, price, copies);
books[i] = book;
}
}
fin.close();
return books;
}
public static void printInfo(Book[] books) {
System.out.println(book);
}
}
这里是我的图书类:
public class Book {
private String isbn;
private double price;
private int copies;
public Book(String isbnNum, double priceOfBook, int copiesInStock) {
isbn = isbnNum;
price = priceOfBook;
copies = copiesInStock;
}
public String getISBN() {
return isbn;
}
public double getPrice() {
return price;
}
public int getCopies() {
return copies;
}
public void setISBN(String isbn) {
this.isbn = isbn;
}
public void setPrice(double price) {
this.price = price;
}
public void setCopies(int copies) {
this.copies = copies;
}
@Override
public String toString() {
return String.format("ISBN: %s, Price: %f, Copies: %d%n",
this.getISBN(), this.getPrice(), this.getCopies());
}
}
这是我第一次使用类,或者至少在同一个程序中创建多个类,所以我仍然试图弄清楚它是如何工作的。我一直在阅读一个我在网上找到的教程,这有点帮助,但是我很难将它应用到这种特定类型的程序中。
任何建议将不胜感激。
'String [] books = new String [15];'应该是'Book [] books = new Book [15];',那么当您加载文件时,您只需将每本书的新实例分配给一个元素数组'书籍[i] =新书(isbn,价格,副本);' – MadProgrammer