目录
思维导图:
图书管理系统的创建:
第一步:搭建框架——-使用者
第二步:搭建框架——被使用者
第三步:操作方法
第四步: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}}
结语:
现在我们就把图书管理系统的框架搭建完成了!接下来要做的就是实现图书管理系统的逻辑!