创建一个Book类,下面是这些方法的作用。我目前被困在如何添加关于删除作者的名字和电子邮件的方法。我不能上传UML映像,因为我是新来的,没有足够的代表点。
我的代码:
class Book {
private String name;
private double price;
// private Author[] authors = new Author[5];
//priavte authors =new ArrayList<Author>();
private Map authors = new HashMap<String, Author>();
// private ArrayList<Author> authors = new ArrayList<Author>();
private int qtyInStock = 0;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public Book(String name, double price, int qtyInStock) {
this.name = name;
this.price = price;
this.qtyInStock = qtyInStock;
}
public String getName() {
return this.name;
}
public double getPrice() {
return this.price;
}
public Collection<Author> getAuthors() {
return authors.values();
}
public void setPrice(double price) {
this.price = price;
}
public int getQtyInStock() {
return this.qtyInStock;
}
public void setQtyInStock(int qtyInStock) {
this.qtyInStock = qtyInStock;
}
public void printAuthors() {
authors.values().forEach(System.out::println);
}
public void addAuthor(Author author)
{
authors.put(author.getName(name), author);
}
public void removeAuthorByName(String name) {
authors.remove(authors.get(name));
}
public void removeAuthorByEmail(String email){
authors.remove(authors.get(email));
}
public void removeAuthor(String author){
authors.remove(authors.get(author));
}
public String toString() {
return "'" + name +"' by " + authors + " authors";
}
}
测试用例
Author a = new Author("Adam", "adam@gmail.com", 'm');
Author b = new Author("Ben", "ben@gmail.com", 'm');
Author c = new Author("Calvin", "calvin@gmail.com", 'm');
Author d = new Author("Danielle", "Danielle@gmail.com", 'f');
Book book1 = new Book("The House", 70.00, 5);
book1.addAuthor(a);
book1.addAuthor(b);
book1.addAuthor(c);
book1.addAuthor(d);
book1.removeAuthorByName("Ben");
System.out.println(book1);
book1.printAuthors();
输出:
The House by 3 authors
Adam
Calvin
Danielle
在此链接上添加了UML:https://gyazo.com/4afc1bafa03210044fafe06650859cb0
我建议将arraylist更改为HashMap。
private ArrayList<Author> authors = new ArrayList<Author>();
至
private Map authors = new HashMap<String, Author>();
更改以下方法-
public Collection<Author> getAuthors() {
return authors.values();
}
public void printAuthors() {
authors.values().forEach(System.out::println);
}
public void addAuthor(Author author)
{
authors.put(author.getName(), author);
}
public void removeAuthorByName(String authorName) {
authors.remove(authors.get(authorName));
}
Akka in Action, by Raymond Roestenburg and Rob Bakker, Manning Publications Co., ISBN: 9781617291012, est fall 2013 Akka Concurrency, by Derek Wyatt, artima developer, ISBN: 0981531660, est April 2013
所以,我有一个名为的类,它有一个Arraylist。我必须制定方法来添加新书、删除一本书、获取所有书籍的价格等。我记下了一些,但我不知道如何添加一本带有ISBN、标题、年份、作者和价格的书? 这是类,我在其中存储ISBN、标题、年份、作者和价格。 这是带有ArrayList及其方法的已编辑的类。 这部分已经涵盖了吗?加上书号、书名、年份、作者和价格。
雪梦图书是一款电子书阅读软件,主要收录使用gitbook制作的在线书籍。
了解上节有关封装的知识后,本节通过完整的例子再次实现封装。要求编写表示图书的 Book 类,实现以下需求: 基本信息包括图书名称(bookName)、总页数(pagelbtalNum),其中页数不能少于 200 页,否则输出错误信息,并赋予默认值 200。 为各个属性设置赋值和取值方法。 具有 details() 方法,该方法在控制台输出每本图书的名称和总页数。 编写 BookTest 测试类,为
图书管理 案例描述 随着科技的发展,计算机的普及,计算机软件在诸多领域都得到了广泛的应用。如今,管理系统不再是大公司的专利,许多小型的管理系统,如餐厅的餐饮管理系统、超市的收银系统、学校的学生选课系统等都已逐步普及到了我们的生活中。 本案例要求实现一个基于单链表的图书管理系统,该系统可实现图书信息的增加、浏览、查询、更新、删除这五项功能,并能将链表中存储的数据保存到文件中。 案例分析 本案例要求实
null 下面是构造函数: 问题:当试图为特定的行/行添加值时,我在下面的方法中得到以下错误:未为Integer类型定义方法add(int)