您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

簡介}public Book getBook(int pos) {return this

什麼情況下使用抽象類

目錄

圖書管理系統

簡單的示意圖:

分析:

各個類的實現

1。Book類

2。BookList類

3。因為Operation包中各個操作都需要用到book,所以建立一個介面IOperation

4。User類

5。Admin類

6。Normal類

7。Main類

8。實現DisplayOperation

9。實現FindOperation

10。實現AddOperation

11。實現BorrowOperation

12。實現ReturnOperation

13。實現DelOperation

14。ExitOperation

執行結果圖:

圖書管理系統

簡單的示意圖:

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

分析:

此時分為3部分:

一.書的內容和存取書

二.使用者登入,分為管理員和普通使用者

三.書相關操作

分別可以建立三個包

package book

package operation

package user

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

book包

中可以用

Book類

來表示一本書

BookList類

來表示N本書

user包

中可以使用

User類

來表示使用者,其中User又有 普通使用者 可以用

NomalUser類

來表示 管理員用

Admin類

來表示

Operation包

中分別用

AddOperation類

來表示增添圖書

DelOperation類

來表示刪除圖書

FindOperation類

來表示查詢圖書

DisplayOperation類

來表示顯示圖書

BorrowOperation類

來表示顯示圖書

ReturnOperation類

來表示歸還圖書

ExitOperation類

來表示退出圖書

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

各個類的實現

1。Book類

package book;public class Book { private String name ;//書的書名 private String author;//書的作者 private int price;//書的價格 private String type;//書的型別 private boolean isBorrowed; public Book(String name, String author, int price, String type) { this。name = name; this。author = author; this。price = price; this。type = type; } public String getName() { return name; } public void setName(String name) { this。name = name; } 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 String getType() { return type; } public void setType(String type) { this。type = type; } public boolean isBorrowed() { return isBorrowed; } public void setBorrowed(boolean borrowed) { isBorrowed = borrowed; } @Override public String toString() { return “Book{” + “name=‘” + name + ’\‘’ + “, author=‘” + author + ’\‘’ + “, price=” + price + “, type=‘” + type + ’\‘’ + “, ” +((isBorrowed==true)?“被借出”:“未被借出”)+ ‘}’; }}

2。BookList類

package book;public class BookList { private Book[] books = new Book[100];//用順序表的方式存書 private int usedSize; public BookList(){ //給3本書在圖書管理系統裡 books[0] = new Book(“Java SE”,“博哥”,2000,“專業知識”); books[1] = new Book(“Java EE”,“大博哥”,3000,“專業知識”); books[2] = new Book(“資料結構”,“博哥哥”,4000,“理論知識”); usedSize=3; } public Book getBook(int pos) { return this。books[pos]; } public void setBooks(int pos,Book book) { this。books[pos] = book; } public int getUsedSize() { return usedSize; } public void setUsedSize(int usedSize) { this。usedSize = usedSize; }}

3。因為Operation包中各個操作都需要用到book,所以建立一個

介面IOperation

package Operation;import book。BookList;import java。util。Scanner;public interface IOperation { public void work(BookList bookList); Scanner sc = new Scanner(System。in);}

4。User類

package user;import Operation。IOperation;import book。BookList;abstract public class User { protected String name ;//使用者名稱 protected IOperation[] iOperations;//對書的操作 public User(String name){ this。name = name; } abstract public int menu(); public void doOperation(int choice, BookList bookList) { this。iOperations[choice]。work(bookList); }}

5。Admin類

package user;import Operation。*;import book。BookList;import java。util。Scanner;public class Admin extends User { public Admin(String name) { super(name); this。iOperations = new IOperation[]{ new ExitOperation(),//下標為0 new FindOperation(),//下標為1 new AddOperation(),//下標為2 new DelOperation(),//下標為3 new DisplayOperation()//下標為4 }; } @Override public int menu() { System。out。println(“======================================”); System。out。println(“hello ”+this。name+“ 歡迎來到圖書館裡系統”); System。out。println(“1。查閱圖書”); System。out。println(“2。新增圖書”); System。out。println(“3。刪除圖書”); System。out。println(“4。顯示圖書”); System。out。println(“0。退出系統”); System。out。println(“======================================”); Scanner sc = new Scanner(System。in); int choice = sc。nextInt(); return choice; }}

6。Normal類

package user;import Operation。*;import java。util。Scanner;public class NormalUser extends User{ public NormalUser(String name) { super(name); this。iOperations = new IOperation[]{ new ExitOperation(),//下標為0 new FindOperation(),//下標為1 new BorrowOperation(),//下標為2 new ReturnOperation()//下標為3 }; } @Override public int menu() { System。out。println(“======================================”); System。out。println(“hello ”+this。name+“ 歡迎來到圖書館裡系統”); System。out。println(“1。查閱圖書”); System。out。println(“2。借出圖書”); System。out。println(“3。歸還圖書”); System。out。println(“0。退出系統”); System。out。println(“======================================”); Scanner sc = new Scanner(System。in); int choice = sc。nextInt(); return choice; }}

7。Main類

import book。BookList;import user。Admin;import user。NormalUser;import user。User;import java。util。Scanner;public class Main { public static User login(){ System。out。println(“請輸入你的姓名: ”); Scanner sc = new Scanner(System。in); String name = sc。nextLine(); System。out。println(“請選擇你的身份: 1。 管理員 2。 普通使用者”); int choice = sc。nextInt(); if(choice==1){ return new Admin(name); }else{ return new NormalUser(name); } } public static void main(String[] args) { BookList bookList = new BookList(); User user = login();//返回的是子類物件,父類引用 引用 子類物件 發生向上轉型 while(true) { int choice = user。menu();//父類引用呼叫了同名的覆蓋方法 此時發生動態繫結 user。doOperation(choice,bookList); } }}

8。實現DisplayOperation

package Operation;import book。Book;import book。BookList;public class DisplayOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“顯示圖書”); for (int i = 0; i < bookList。getUsedSize(); i++) { Book book = bookList。getBook(i); System。out。println(book); } }}

9。實現FindOperation

package Operation;import book。Book;import book。BookList;public class FindOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“查詢圖書”); System。out。println(“請輸入你要查詢的圖書的書名:”); String name = sc。nextLine(); for (int i = 0; i < bookList。getUsedSize(); i++) { Book book = bookList。getBook(i); if(book。getName()。equals(name)){ System。out。println(“找到了這本書!”); System。out。println(book); //找到了這本書直接return return; } } //迴圈結束 沒有找到書 System。out。println(“沒有這本書!”); }}

10。實現AddOperation

package Operation;import book。Book;import book。BookList;public class AddOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“新增圖書! ”); System。out。println(“請輸入你要新增圖書的書名:”); String name = sc。next(); System。out。println(“請輸入你要新增圖書的作者:”); String author = sc。next(); System。out。println(“請輸入你要新增圖書的價格:”); int price = sc。nextInt(); System。out。println(“請輸入你要新增圖書的型別:”); String type = sc。next(); Book book = new Book(name,author,price,type); bookList。setBooks(bookList。getUsedSize(), book); bookList。setUsedSize(bookList。getUsedSize()+1);//usedSize要加1 System。out。println(“新增成功! ”); }}

11。實現BorrowOperation

package Operation;import book。Book;import book。BookList;public class BorrowOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“借出圖書”); System。out。println(“請輸入你要借的書名:”); String name = sc。nextLine(); for (int i = 0; i < bookList。getUsedSize(); i++) { Book book = bookList。getBook(i); if(book。getName()。equals(name)){ book。setBorrowed(true); System。out。println(“借書成功”); return; } } System。out。println(“沒有你要借的書!”); }}

12。實現ReturnOperation

package Operation;import book。Book;import book。BookList;public class ReturnOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“歸還圖書”); System。out。println(“請輸入你要歸還的圖書:”); String name = sc。nextLine(); for (int i = 0; i < bookList。getUsedSize(); i++) { Book book = bookList。getBook(i); if(book。getName()。equals(name)){ book。setBorrowed(true); System。out。println(“歸還成功!”); return; } } System。out。println(“沒有你要歸還的書籍”); }}

13。實現DelOperation

package Operation;import book。Book;import book。BookList;public class DelOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“刪除圖書”); System。out。println(“請輸入你要刪除的圖書的書名:”); String name = sc。nextLine(); int pos = -1; for (int i = 0; i < bookList。getUsedSize(); i++) { Book book = bookList。getBook(i); if (book。getName()。equals(name)){ pos = i; break;//有相同的書就返回i的下標 } } if(pos == -1){ //當pos沒有改變時,直接返回 System。out。println(“沒有你要刪除的書籍”); return; } //將pos位置刪除,從後往前交換 for (int i = pos; i < bookList。getUsedSize(); i++) { Book book = bookList。getBook(i+1); bookList。setBooks(i,book); } bookList。setUsedSize(bookList。getUsedSize()-1);//usedSize要-1 System。out。println(“刪除成功!”); }}

14。ExitOperation

package Operation;import book。BookList;public class ExitOperation implements IOperation{ @Override public void work(BookList bookList) { System。out。println(“退出系統”); System。exit(0); }}

執行結果圖:

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

用Java實現 圖書管理系統 使用類,抽象類,封裝,繼承,多型,介面等知識點

,https://blog。csdn。net/wwzzzzzzzzzzzzz/article/details/121375309

Top