目录

思维导图:

图书管理系统的创建:

第一步:搭建框架——-使用者

第二步:搭建框架——被使用者

第三步:操作方法

第四步:main函数


思维导图:

前言:

昨天学了一下使用Java语言来写一个图书管理系统,于是今天写一篇博客作为一个小笔记巩固一下自己学到的知识!博主也是刚学,可能写的不是很清楚,很明白……,希望大家谅解!

图书管理系统的创建:

第一步:搭建框架——-使用者

这个过程是最简单的,只要明确的知道自己的图书管理系统要面向的对象是谁!比如我写的,我面向的对象就是使用者:AdminUser与NormalUser,还有被使用的对象:Book与Booklist。

于是我的第一步便是创建了这几个类:

第一个:User(父类)

package User;publicclass User { protected String name;public User(String name) {// TODO Auto-generated constructor stubthis.name = name;}}

第二个:AdminUser(子类)

package User;public class AdminUser extends User{public AdminUser(String name) {// TODO Auto-generated constructor stubsuper(name);//先帮父类构造this.name = name;//再自己构造}}

第三个:NormalUser(子类)

package User;public class NormalUser extends User{public NormalUser(String name) {// TODO Auto-generated constructor stubsuper(name);this.name = name;}}

说明:

1.这三个类是在同一个包中的

2.至于为什么要多创建一个父类User呢?是因为这样方便向下转型!毕竟两个子类在调用时不能统一类型,但是加一个父类就很好统一了!

第二步:搭建框架——被使用者

这个项目里面的被使用者是谁?毫无疑问是我们的书以及书架!因为你要借的是书,而书在书架上。你要动书,自然就会动书架!!!所以我们的操作对象也就确定了。

于是我的第二步就创建了这两个对象:

第一个:Book类

package Library;public class Book {private String name;private String type;private String author;private int price;private boolean isBorrow;public Book( String name,String type,String author, int price) {this.name = name;this.type = type;this.author = author;this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public boolean isBorrow() {return isBorrow;}public void setBorrow(boolean isBorrow) {this.isBorrow = isBorrow;}}

第二个类:Booklist

package Library;public class Booklist {Book[]books = new Book[10];//创建一个Book类型的数组来当书架public Booklist(Book[]books) {//构造方法初始化数组// TODO Auto-generated constructor stubbooks[0] = new Book("三国演义", "古典小说", "罗贯中", 66);books[1] = new Book("水浒传", "古典小说","施耐庵", 55);books[2] = new Book("三体", "科幻小说", "刘慈欣", 88);}}

说明:

1.这两个类也是在同一个包里的

2.在Book类中使用private修饰符可以更好的封装并且能确保name,author这些变量不能随意改动。只能通过get与set方法来获取与更改。

3.在构造方法中之所以没有初始化isBorrow是因为它默认就是false。一开始我们的书架的书是没有被借出的,所以isBorrow就是false。

第三步:操作方法

操作方法的功能是多种多样的,也就是说他是多态的。于是我们便可以多态的方法来想如何实现多态。

接口:IOperation

package Operation;import Library.Booklist;public interface IOperation {public void work(Booklist booklist) ;//接口内的方法,操作的对象是Booklist。}

第二个类:AddOperation

package Operation;import Library.Booklist;public class AddOperation implements IOperation{public void work(Booklist booklist) {//重写方法,使这个方法变为Addoperation的方法System.out.println("添加图书!");}}

第二个类:DelOperation

package Operation;import Library.Booklist;public class DelOperation implements IOperation {public void work(Booklist booklist) {//重写方法,使work方法变成DelOperation的方法System.out.println("删除图书!");}}

第三个类:FindOperation

package Operation;import Library.Booklist;public class FindOperation implements IOperation { public void work(Booklist booklist){//重写work方法使之成为FindOperation的方法 System.out.println("查阅图书!"); }}

第四个类:DisplayOperation

package Operation;import Library.Booklist;public class DisplayOperation implements IOperation {public void work(Booklist booklist) {System.out.println("显示图书!");}}

第五个类:isBorrowOperation

package Operation;import Library.Booklist;public class isBorrowOperation implements IOperation {public void work(Booklist booklist) {System.out.println("借阅图书!");}}

第六个类:returnOperation

package Operation;import Library.Booklist;public class returnOperation implements IOperation{public void work(Booklist booklist) {System.out.println("归还图书!");}}

说明:

1.这里的接口就是为了实现多态,方便以后的调用。

2.接口里的方法是只能定义不能写的。

3.每个继承接口的方法都要重写接口内的方法从而形成自己的方法

4.这些类和接口都在同一个包里面

第四步:main函数

就像我以前写C语言的小游戏有test.c源文件来实现游戏逻辑一样,用Java语言实现一个图书管理系统也要有一个单独的main函数来实现图书管理系统的逻辑!

在与User同样的包里创建main函数:

package User;public class Main {public static void main(String[] args) {// TODO Auto-generated method stub}}

结语:

现在我们就把图书管理系统的框架搭建完成了!接下来要做的就是实现图书管理系统的逻辑!