2、 设计一个图书Book的类,并编写测试程序测试Book类。
定义Book类,包括 :
(1)一个私有的int类型类变量bookId,表示图书编号,bookid从1开始自动编号;
(2)一个私有的String类型实例变量bookName,表示书名;
(4)一个私有的String类型实例变量author,表示作者;
(5)一个私有的double类型实例变量price,表示图书价格;
(6)无参构造方法;
(7)具有3个参数的构造方法,参数为图书的bookName、author、price;
(8)提供除图书编号外的所有成员变量的set方法。
(9)提供所有成员变量的get方法,其中bookId的get方法为静态方法。
(10)编写toString()方法返回图书的信息。
编写测试程序,要求在测试程序中:
(1)用无参构造方法创建图书对象book1,并设置;
(2)用有3个参数的构造方法创建图书对象book2,要求通过键盘输入这3个参数。
(3)输出对象book1和book2的信息;
(4)修改book1的书名、作者和价格分别为“面向对象技术”、“张三”,50;
(5)再次输出对象book1和book2的信息。
输出参考样例如图所示。
package Test;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Book book1 = new Book();
book1.setBookId(1);
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] split = str.split(" ");
Book book2 = new Book(2, split[0], split[1], Double.parseDouble(split[2]));
System.out.println(book1);
System.out.println(book2);
book1.setBookName("面向对象技术");
book1.setAuthor("张三");
book1.setPrice(50);
System.out.println();
System.out.println(book1);
System.out.println(book2);
}
}
class Book {
private int bookId;
private String bookName;
private String author;
private double price;
public Book() {
super();
// TODO Auto-generated constructor stub
}
public Book(int bookId, String bookName, String author, double price) {
super();
this.bookId = bookId;
this.bookName = bookName;
this.author = author;
this.price = price;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Book [bookId=" + bookId + ", bookName=" + bookName + ", author=" + author + ", price=" + price + "]";
}
}