|
《Java从入门到实践》4.6本章实例怎么不能运行
Book的源代码为:
package cn.com.jaking.project;
public class Book {
private int id; //图书编号
private String name; //图书名称
private Booktype type; //图书类别
private String author; //作者
private String translat; //译者
private String publishing_company; //出版社
private double price; //价格
private int stock; //库存数量
//无参数构造法
public Book () {
}
//带参数构造法
public Book (int id, String name, Booktype type, String author, String translat, String publishing_company, double price, int stock) {
this.id = id;
this.name = name;
this.type = type;
this.author = author;
this.translat = translat;
this.publishing_company = publishing_company;
this.price = price;
this.stock = stock;
}
public String getAuthor () {
return author;
}
public void setAuthor (String author) {
this.author = author;
}
public int getId () {
return id;
}
public void setId (int id) {
this.id = id;
}
public Booktype getType () {
return type;
}
public void setType (Booktype type) {
this.type = type;
}
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public double getPrice () {
return price;
}
public void setPrice (double price) {
this.price = price;
}
public String getPublishing_company () {
return publishing_company;
}
public void setPublishing_company (String publishing_company) {
this.publishing_company = publishing_company;
}
public int getStock () {
return stock;
}
public void setStock (int stock) {
this.stock = stock;
}
public String getTranslat () {
return translat;
}
public void setTranslat (String translat) {
this.translat = translat;
}
}
Booktype的源代码为:
package cn.com.jaking.project;
public class Booktype {
private int id;
private String name;
private int days;
public Booktype () {
}
public Booktype (int id, String name, int days) {
this.id = id;
this.name = name;
this.days = days;
}
public int getDays() {
return days;
}
public void setDays (int days) {
this.days = days;
}
public int getId() {
return id;
}
public void setId (int id) {
this.id = id;
}
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
}
Bookmanager的源代码为:
package cn.com.jaking.project;
import java.util.List;
public class Bookmanager {
//将图书book增加到数据库
public void add (Book book) {
//...
}
//从数据库中删除图书book
public void delete (Book book) {
//...
}
//更新数据库中图书book的信息
public void update (Book book) {
//...
}
//从数据库中查询编号为bookId的图纸
public Book query (int bookId) {
Book book = null;
//...
return book;
}
//从数据库中查询满足条件的所有图书
public List query (String sql) {
List bookList = null;
//...
return bookList;
}
}
Test的源代码为:
package cn.com.jaking.project;
public class Test {
public static void main (String args []) {
Bookmanager manager = new Bookmanager();
//增加图书
Booktype type = new Booktype (1, "科技类", 30); //创建图书类别
Book book = new Book ();
book.setId(1);
book.setName("Java语言入门");
book.setAuthor("赵大");
book.setPublishing_company("电子工业出版社");
book.setPrice(49.80);
book.setStock(5);
book.setType(type);
manager.add(book);
//查询并修改图书
book = manager.query(1);
book.setStock(8);
manager.update(book);
}
}
在Eclipse中,Book,Booktype,Bookmanager是不可以运行的,只有Test可以运行,但运行时,控制台会显示:
Exception in thread "main" java.lang.NullPointerException
at cn.com.jaking.project.Test.main(Test.java:20)
所有的代码在Eclipse中均没有错误标记,这是怎么回事啊? |
|