Java OOP构建一个对象数组

时间:2018-04-20 17:49:19

标签: java oop

感谢您的帮助!我放弃了高级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;
	  }
}

1 个答案:

答案 0 :(得分:0)

  

但它也说“不要使用java扫描,构建分配   以编程方式“。我无法理解。如果我不使用扫描,如何   我可以知道用户通过了多少个对象吗?我怎么决定是否   它超过5或等于5?或者有没有办法填充数组   我不知道要通过多少个物体?

“以编程方式构建分配”意味着您不必请求或解析任何用户输入 - 只需编写代码即可直接执行。

但是,要求提到“测试用例”。这意味着你应该有单独的逻辑来管理数组(测试容量和抛出异常)并进行这种程序化分配。这听起来并不像您期望使用测试框架,因此只需将BookApp类作为实例变量,一个addBook()方法给予它,并在其主方法中进行测试。