国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例)

這篇具有很好參考價值的文章主要介紹了Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

面向編程概念

Java面向?qū)ο缶幊蹋∣bject-Oriented Programming,OOP)是Java語言的核心特性之一,它提供了一種組織代碼的方法,將現(xiàn)實世界中的事物抽象為對象,并通過對象之間的交互來構(gòu)建程序。Java面向?qū)ο缶幊贪韵轮饕拍睿?/p>

  • 類和對象(Class and Object):
    類是面向?qū)ο缶幊痰幕緲?gòu)建塊,它是對一組具有相同屬性和行為的對象的抽象描述。對象是類的實例化結(jié)果,它是內(nèi)存中的實體,具有類所定義的屬性和行為。類定義了對象的結(jié)構(gòu)和行為,而對象則代表了真實世界中的具體實體。

  • 封裝(Encapsulation):
    封裝是一種將數(shù)據(jù)和行為封裝在類中,阻止外部直接訪問和修改對象的內(nèi)部狀態(tài)的特性。通過封裝,類可以隱藏其實現(xiàn)細(xì)節(jié),并通過公共的方法提供對內(nèi)部狀態(tài)的訪問和操作。這有助于提高代碼的可維護性和安全性。

  • 繼承(Inheritance):
    繼承是一種類之間的關(guān)系,它允許一個類(稱為子類或派生類)繼承另一個類(稱為父類或基類)的屬性和行為。子類可以復(fù)用父類的代碼,并且可以在不修改父類的情況下增加新的功能。繼承提供了代碼重用和層次化組織的能力。

  • 多態(tài)(Polymorphism):
    多態(tài)是指同一操作可以在不同的對象上產(chǎn)生不同的結(jié)果。它允許我們使用統(tǒng)一的接口來處理不同類的對象,從而提高代碼的靈活性和可擴展性。多態(tài)有兩種形式:靜態(tài)多態(tài)(方法重載)和動態(tài)多態(tài)(方法重寫,也稱為覆蓋)。

  • 抽象類(Abstract Class):
    抽象類是不能被實例化的類,它用于作為其他類的基類,提供一種對類的抽象描述。抽象類可以包含抽象方法和具體方法,子類必須實現(xiàn)抽象方法才能被實例化。抽象類常常用來定義類的通用行為和屬性。

  • 接口(Interface):
    接口是一種特殊的抽象類,它定義了一組抽象方法,但不包含具體的實現(xiàn)。類可以實現(xiàn)(implements)一個或多個接口,實現(xiàn)接口的類必須提供接口中定義的所有方法。接口提供了一種多繼承的機制,使得類可以在不同的繼承樹上實現(xiàn)不同的功能。

圖書管理系統(tǒng)示例

需求分析

  • 確定系統(tǒng)的功能:明確圖書管理系統(tǒng)的基本功能,如查找圖書、新增圖書、刪除圖書、顯示圖書、借閱圖書、歸還圖書等功能。

  • 定義用戶角色和權(quán)限:確定系統(tǒng)中的用戶角色,如讀者、管理員等,并定義他們的權(quán)限和操作范圍。

    • 普通用戶:查找圖書、借閱圖書、歸還圖書
    • 管理員:查找圖書、新增圖書、刪除圖書、顯示圖書
  • 識別數(shù)據(jù)需求:分析需要存儲的數(shù)據(jù),如圖書信息、讀者信息、借閱記錄等,并確定數(shù)據(jù)之間的關(guān)系。

    • 圖書名字、作者、價格、圖書類型、圖書是否借出
    • 管理員、用戶名字

設(shè)計階段

  • 架構(gòu)設(shè)計:設(shè)計系統(tǒng)的整體架構(gòu),包括圖書類、圖書館類、讀者類等的設(shè)計,以及它們之間的關(guān)系。
  • 接口設(shè)計:進行操作的接口。
  • 數(shù)據(jù)庫設(shè)計:咱們這就是一個JavaSe的小項目,暫時不涉及數(shù)據(jù)庫(使用數(shù)組存儲,不是持久化存儲)。

編碼實現(xiàn)

創(chuàng)建目錄結(jié)構(gòu)

根據(jù)需求分析,我們的圖書管理系統(tǒng)有圖書、用戶、然后還有用戶對圖書的操作。所以我們先把這三個包創(chuàng)建好。

  • book這個包里放跟圖書有關(guān)的,是Book類和存儲圖書的BookList類,
  • operation包放的是所有的操作類,
  • user包放的是和用戶有關(guān)的類。

值得注意的是,我們可以定義一個IOperation接口,讓所有的操作繼承這個接口,之后只要是進行操作就只要調(diào)用這個接口就好了。另外我們的User類,實際上是一個抽象的概念,實際上我們是普通用戶和管理員是實際的,所以我們可以定義一個抽象的User類,然后派生出具體的用戶。最后,我們我們還要創(chuàng)建一個啟動類,作為整個程序的入口。
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

Book類的編碼

package book;

/**
 * @Author: Fourteen-Y
 * @Description: 圖書信息,包括書名、作者、價格、類型、是否被借出
 * @Date: 2023/7/27 12:04
 */
public class Book {
	// 圖書的屬性
    private String name;
    private  String author;
    private int price;
    private String type;
    private  boolean isBorrowed;
    
    // 圖書的構(gòu)造方法,實例對象的時候能直接定義圖書對象
    public Book(String name, String author, int price, String type) {
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
    }

	// getter和setter方法,圖書的屬性被聲明為私有,提供公共的方法來讓外部代碼訪問這些屬性的值。
    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;
    }
    
    // 重寫toString方法,更好的打印圖書信息
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                // 三目運算符 當(dāng)isBorrowed為true時,輸出已借出,否則輸出未借出
                ((isBorrowed == true) ? " ,已借出" : " ,未借出")+
                // ", isBorrowed=" + isBorrowed +
                '}';
    }
}

BookList類的編碼

package book;

/**
 * @Author: Fourteen-Y
 * @Description: 對圖書的存儲
 * @Date: 2023/7/27 12:04
 */
public class BookList {
    /**
     * 創(chuàng)建一個數(shù)組,用來存放書籍,一開始默認(rèn)5本書
      */
    private static Book[] books = new Book[5];
    /**
     * 數(shù)組中放了書的個數(shù)
     */
    private int usedSize;

    /**
     * 默認(rèn)存放的書籍
     */
    public BookList() {
        books[0] = new Book("三國演義","羅貫中",34,"小說");
        books[1] = new Book("西游記","吳承恩",24,"小說");
        books[2] = new Book("紅樓夢","曹雪芹",30,"小說");
        books[3] = new Book("水滸傳","施耐庵",34,"小說");
        books[4] = new Book("西廂記","王實甫",34,"小說");
        this.usedSize = 5;
    }

    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }
    
    //借書還書的操作,涉及到數(shù)組的操作
    /**
     * 獲取pos下標(biāo)的書
     * @param pos
     * @return
     */
    public Book getPos(int pos) {
        return books[pos];
    }

    /**
     * 給數(shù)組的pos位置,放一本書
     * @param pos
     * @param book
     */
    public static void setBooks(int pos, Book book) {
        books[pos] = book;
    }
}

User類的編碼

package user;

import book.BookList;
import operation.IOperation;

/**
 * @Author: Fourteen-Y
 * @Description: 用戶抽象類 有兩個子類:普通用戶和管理員
 * @Date: 2023/7/27 12:10
 */
public abstract class User {
    protected String name;
	/**
     * 把所有的操作都放到這個數(shù)組中 通過下標(biāo)來選擇具體的操作
     */
    public IOperation[] ioPerations;

    public User(String name) {
        this.name = name;
    }

    public abstract int menu();

	/**
     * 根據(jù)用戶輸入的選項,調(diào)用對應(yīng)的操作
     * @param choice 用戶輸入的選項
     * @param bookList 圖書列表
     */
    public void doOperation(int choice, BookList bookList) {
    	// work是所有操作的具體實現(xiàn),傳入要操作的書籍?dāng)?shù)組
        ioPerations[choice].work(bookList);
    }
}

AdminUser類的編碼

package user;

import operation.*;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description: 管理員 1.查找圖書 2.新增圖書 3.刪除圖書 4.顯示圖書 0.退出系統(tǒng)
 * @Date: 2023/7/27 12:09
 */
public class AdminUser extends User {
    public AdminUser(String name) {
        super(name);

        // 把所有的操作在數(shù)組中new出來,
        // 由于還沒實現(xiàn)這些具體的操作,所以一下代碼展示會報錯
        this.ioPerations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new DisplayOperation(),
        };
    }

    /**
     * 管理員菜單 1.查找圖書 2.新增圖書 3.刪除圖書 4.顯示圖書 0.退出系統(tǒng)
     * @return 返回用戶輸入的選項,供主程序調(diào)用
     */
    @Override
    public int menu() {
        System.out.println("歡迎管理員"+this.name+"登錄");
        System.out.println("1.查找圖書");
        System.out.println("2.新增圖書");
        System.out.println("3.刪除圖書");
        System.out.println("4.顯示圖書");
        System.out.println("0.退出系統(tǒng)");
        Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();
        return choice;
    }
}

NormalUser類的編碼

package user;

import operation.*;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description: 普通用戶 有四個操作:查找圖書 借閱圖書 歸還圖書 退出系統(tǒng)
 * @Date: 2023/7/27 12:10
 */
public class NormalUser extends User{
    public NormalUser(String name) {
        super(name);
        this.ioPerations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation(),
        };
    }

    /**
     * 普通用戶菜單 1.查找圖書 2.借閱圖書 3.歸還圖書 0.退出系統(tǒng)
     * @return 返回用戶輸入的選項,供主程序調(diào)用
     */
    @Override
    public int menu() {
        System.out.println("歡迎"+this.name+"登錄");
        System.out.println("1.查找圖書");
        System.out.println("2.借閱圖書");
        System.out.println("3.歸還圖書");
        System.out.println("0.退出系統(tǒng)");
        Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();
        return choice;
    }
}

啟動類的編寫

import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description:
 * @Date: 2023/7/27 12:11
 */
public class Main {
    public static User login(){
        System.out.println("請輸入你的姓名:");
        Scanner sc = new Scanner(System.in);
        String name = sc.next();
        System.out.println("請輸入你的身份:1.管理員 2.普通用戶");
        int choice = sc.nextInt();
        if(choice == 1) {
            return new AdminUser(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);
        }
    }
}

具體的操作實現(xiàn)

IOperation接口
package operation;

import book.BookList;

/**
 * @Author: Fourteen-Y
 * @Description: 新增圖書
 * @Date: 2023/7/27 12:09
 */
public interface IOperation {
	// 由于接口中的方法都是抽象方法,所以可以省略public abstract
    void work(BookList bookList);
}
新增圖書的實現(xiàn)
package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description:
 * @Date: 2023/7/27 12:07
 */
public class AddOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("新增圖書!");
        System.out.println("請輸入圖書的名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();
        System.out.println("請輸入圖書的作者");
        String author = sc.nextLine();
        System.out.println("請輸入圖書的類型");
        String type = sc.nextLine();
        System.out.println("請輸入圖書的價格");
        int price = sc.nextInt();

		// 創(chuàng)建一個Book對象
        Book book = new Book(name,author,price,type);

        // 當(dāng)BookList滿了的時候,自動擴容成原來的2倍
        BookList.ensureCapacity(bookList);

        int currentSize = bookList.getUsedSize();
        BookList.setBooks(currentSize,book);

		// 更新usedSize
        bookList.setUsedSize(currentSize + 1);

        System.out.println("新增成功!");
    }
}

上面用了一個確保容量的函數(shù),自動擴容的函數(shù),我們在BookList類里面加上這個函數(shù)

public static void ensureCapacity(BookList bookList) {
       // 如果當(dāng)前數(shù)組已經(jīng)滿了,就擴容成原來的2倍
       if (bookList.getUsedSize() == books.length) {
           Book[] newBooks = new Book[2 * books.length];
           for (int i = 0; i < books.length; i++) {
               newBooks[i] = books[i];
           }
           books = newBooks;
       }
}
借閱圖書的實現(xiàn)
package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description:
 * @Date: 2023/7/27 12:08
 */
public class BorrowOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("借閱圖書!");
        System.out.println("請輸入你要借閱圖書的名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();

        // 1.查找書籍是否存在
        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            Book book = bookList.getPos(i);
            if (book.getName().equals(name)) {
                // 2.判斷書籍是否被借出
                if (book.isBorrowed()) {
                    System.out.println("這本書已經(jīng)被借出去了!");
                    return;
                }
                // 3.借閱書籍
                book.setBorrowed(true);
                System.out.println("借閱成功!");
                return;
            }
        }
        System.out.println("沒有你要借閱的圖書");

       
    }
}

刪除圖書的實現(xiàn)
package operation;


import book.Book;
import book.BookList;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description: 刪除圖書
 * @Date: 2023/7/27 12:08
 */
public class DelOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("刪除圖書!");
        System.out.println("請輸入你要刪除圖書的名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();

        // 1.查找書籍是否存在
        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            Book book = bookList.getPos(i);
            if (book.getName().equals(name)) {
                // 2.刪除書籍
                for (int j = i; j < currentSize - 1; j++) {
                    Book book1 = bookList.getPos(j + 1);
                    BookList.setBooks(j,book1);
                }
                bookList.setUsedSize(currentSize - 1);
                System.out.println("刪除成功!");
                return;
            }
        }
        System.out.println("沒有你要刪除的書!");
        
    }
}

顯示圖書的實現(xiàn)
package operation;

import book.Book;
import book.BookList;

/**
 * @Author: Fourteen-Y
 * @Description: 展示圖書
 * @Date: 2023/7/27 12:08
 */
public class DisplayOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("展示圖書!");


        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {

            Book book = bookList.getPos(i);
            System.out.println(book);
        }

    }
}

查找圖書的實現(xiàn)
package operation;

import book.BookList;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description: 查找圖書
 * @Date: 2023/7/27 12:09
 */
public class FindOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("查找圖書!");
        System.out.println("請輸入你要查找圖書的名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();

        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            if (bookList.getPos(i).getName().equals(name)) {
                System.out.println("找到這本書了,信息如下");
                System.out.println(bookList.getPos(i));
                return;
            }
        }
        System.out.println("沒有這本書!");
    }

}

歸還圖書的實現(xiàn)
package operation;

import book.BookList;

import java.util.Scanner;

/**
 * @Author: Fourteen-Y
 * @Description: 歸還圖書
 * @Date: 2023/7/27 12:09
 */
public class ReturnOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("歸還圖書!");
        System.out.println("請輸入你要歸還圖書的名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();
        
        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            if (bookList.getPos(i).getName().equals(name)) {
                if (bookList.getPos(i).isBorrowed()) {
                    bookList.getPos(i).setBorrowed(false);
                    System.out.println("歸還成功!");
                    return;
                }
                System.out.println("這本書沒有被借出去!");
                return;
            }
        }
        System.out.println("這本書不是該圖書館的書!");
    }
}

退出系統(tǒng)操作
package operation;

import book.BookList;

/**
 * @Author: Fourteen-Y
 * @Description: 退出系統(tǒng)
 * @Date: 2023/7/27 12:08
 */
public class ExitOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("退出系統(tǒng)!");

        int currentSize = bookList.getUsedSize();
        for (int i = 0; i < currentSize; i++) {
            BookList.setBooks(i,null);
        }
        System.exit(0);
    }
}

測試階段

管理員用戶功能測試

查找圖書操作
  • 查找有的圖書:
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
  • 查找沒有的圖書
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
新增圖書操作

Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

展示圖書操作

Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

刪除圖書操作
  • 刪除有的圖書
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
  • 刪除沒有的圖書
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

普通用戶功能測試

查找圖書操作

Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

借閱圖書操作

Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

歸還圖書操作

Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
當(dāng)還完繼續(xù)還的時候
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
當(dāng)還的書書架上沒有的時候
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

面向?qū)ο缶幊趟枷氲捏w現(xiàn)

類的定義和對象的創(chuàng)建

  • 我們定義一個"Book"類來表示圖書的屬性和行為
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
  • 我們定義一個"BookList"類來表示存放圖書的書架的屬性和行為
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
  • 我們默認(rèn)書架上有5本書,一開始就創(chuàng)建了5個Book對象
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
  • 我們每一次新增圖書的時候都會再創(chuàng)建一個圖書對象,并把這個對象放入書架上
    Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

封裝

在上面的例子中,我們使用了封裝來隱藏Book類的內(nèi)部實現(xiàn)細(xì)節(jié)。圖書的屬性(書名、作者、價格、類型、是否被借出)都被聲明為私有(private),這意味著它們不能直接從外部訪問。我們?yōu)槊恳粋€屬性都提供了公共的(getter/setter)方法來讓外部代碼訪問這些屬性的值。
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
get是得到屬性的值,set是設(shè)置屬性的值
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

繼承

我們的管理員和普通用戶都有一些共性:都有名字,都會生產(chǎn)一個可以選擇操作的菜單,兩者的行為其實是一樣的,只是可以操作的選項不同。所以我們在User類中把這些全定義好,通過管理員和普通用戶來繼承實現(xiàn)這些功能。
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

多態(tài)

在系統(tǒng)中,我們選擇不同的用戶類型會出現(xiàn)不同的功能菜單。是因為我們對menu這個方法進行了重寫,不同的對象調(diào)用這個方法會執(zhí)行自己重寫了的邏輯和功能。
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
通過使用多態(tài),我們可以使用相同的方法處理不同類型的對象,這樣代碼更加靈活和可復(fù)用。

抽象類

在上面的例子中,我們已經(jīng)看到了Java中的抽象類的使用。在這個示例中,User類被聲明為抽象類,它是一種抽象的概念,它表示用戶的通用屬性。
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

接口

在上面的示例中,我們把所有的操作定義成了一個接口,我們定義IOperation接口就是進行所有的功能操作,然后通過不同的類來分別實現(xiàn)各自的功能。通過這個接口我們可以控制所有的功能。
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)
Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例),Java,java,面向?qū)ο笏枷?javase,圖書管理系統(tǒng)

總結(jié)

這個簡單的圖書管理系統(tǒng)演示了Java面向?qū)ο缶幊痰母鱾€概念的應(yīng)用。實際的項目中,面向?qū)ο缶幊虒⒏鼜?fù)雜和豐富,但這個示例可以幫助你理解如何在實際項目中應(yīng)用面向?qū)ο缶幊痰母拍睢?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-617932.html

到了這里,關(guān)于Java面向?qū)ο缶幊虒崙?zhàn)詳解(圖書管理系統(tǒng)示例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包