感谢您的帮助!我放弃了高级for循环,它现在运行良好。但要求仍然让我感到困惑。如果测试用例传递超过5个对象,则要求抛出异常。但它也说“不要使用java扫描,以编程方式构建分配”。我不明白这一点。如果我不使用扫描,我怎么知道用户通过了多少个对象?我如何判断它是否大于5或等于5?或者有没有办法填充数组而不知道我要传递多少个对象?
教师的要求:
•填充Book对象数组时,如果测试用例传递的对象多于数组容量,则应用程序应抛出异常。数组容量定义为(nBooks = 5;)。不要使用java扫描,以编程方式构建分配
•仅使用ARRAY NOT LIST进行此分配。
书类
public class Book {
private int id;
private String name;
private double price;
public Book() {
id = 0;
name = "";
price = 0;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPrice(double price) {
this.price = price;
}
public double getPrice() {
return price;
}
}
BookApp课程:
public class BookApp {
public static Book[] populateBooks() {
Scanner input = new Scanner(System.in);
Book[] books = new Book[5];
for (int i = 0; i < books.length; i++) {
books[i] = new Book();
System.out.print("Enter book id: ");
books[i].setId(input.nextInt());
System.out.print("Enter book name: ");
books[i].setName(input.next());
System.out.print("Enter book price: ");
books[i].setPrice(input.nextDouble());
}
return books;
}
}
答案 0 :(得分:0)
但它也说“不要使用java扫描,构建分配 以编程方式“。我无法理解。如果我不使用扫描,如何 我可以知道用户通过了多少个对象吗?我怎么决定是否 它超过5或等于5?或者有没有办法填充数组 我不知道要通过多少个物体?
“以编程方式构建分配”意味着您不必请求或解析任何用户输入 - 只需编写代码即可直接执行。
但是,要求提到“测试用例”。这意味着你应该有单独的逻辑来管理数组(测试容量和抛出异常)并进行这种程序化分配。这听起来并不像您期望使用测试框架,因此只需将BookApp类作为实例变量,一个addBook()方法给予它,并在其主方法中进行测试。