Heim  >  Artikel  >  Java  >  So schreiben Sie grundlegenden Funktionscode für die Java-Buchverwaltung

So schreiben Sie grundlegenden Funktionscode für die Java-Buchverwaltung

PHPz
PHPznach vorne
2023-05-23 15:49:061066Durchsuche

Werfen wir zunächst einen Blick auf den Laufeffekt Alles klar, zwei Objekte: Benutzer und Buch, also erstellen Sie zwei Pakete Buch und Benutzer

Wie Sie auf dem Bild oben sehen können: Es gibt die gleichen Vorgänge zwischen verschiedenen Benutzern und es gibt auch unterschiedliche Vorgänge, also könnten Sie das auch tun Fügen Sie alle Operationen in einem Paket ein. Sie können es direkt aufrufen, wenn Sie eine Operation benötigen. Ich habe dieses Paket „operate“ genannt Verschiedene Informationen, einschließlich Buchtitel, Autor, Buchtyp, Preis und Ausleihstatus, verwende ich private Modifikationen für Mitgliedsvariablen in allen Klassen in allen Paketen und stelle nur externe Methoden bereit, die später nicht wiederholt werden. Der Code lautet wie folgt ( nur ein Teil des Codes wird angezeigt): So schreiben Sie grundlegenden Funktionscode für die Java-Buchverwaltungrrree

Da es Bücher gibt, wird ein Bücherregal zum Speichern der Bücher benötigt. Daher ist im Buchpaket eine Klasse namens BookShelf definiert, um Bücher zu speichern und die Anzahl der Bücher aufzuzeichnen Es kann mit dem Array der Buchklasse implementiert werden

package book;
public class Book {
    private String name;
    private String author;
    private String type;
    private int price;
    private boolean borrow;
    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;
    }
}
So schreiben Sie grundlegenden Funktionscode für die Java-BuchverwaltungDa auf das Array nicht direkt zugegriffen werden kann, fügen Sie eine Methode hinzu, um den Array-Index in der Klasse abzurufen. Die Zugriffsmethode auf das Array wird im Allgemeinen auf das Buch angewendet, daher auch auf die setBook-Methode geändert

public class BookShelf {
    private Book[] books=new Book[1000];
    private int count; //记录书的数量
}

Der vorläufige Code des Buchpakets ist hier, fahren Sie mit dem nächsten Paket fort

2. Das Benutzerpaket

wird definitiv zwei Klassen haben: normale Benutzer (NormalUser) und Administratoren (AdminUser), aber der Fokus liegt auf So implementieren Sie verschiedene Vorgänge für verschiedene Benutzer im Bild

Dann schreiben wir zuerst die Anmeldemethode aus und analysieren dann: Die Methode

package book;
public class BookShelf {
    private Book[] books=new Book[1000];
    private int count; //记录书的数量
    public void setBooks(int pos,Book book) {
        books[pos] = book;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
    public BookShelf() {
        books[0]=new Book("呐喊","鲁迅","小说集",30); //默认初始有一本书,写不写随你
        this.count=1;
    }
    //获取下标对应的书
    public Book pos(int i) {
        return books[i];
    }
}

bestimmt anhand verschiedener Zahlen, um welche Art von Benutzer es sich handelt, daher sollte der Rückgabewert lauten Geben Sie eine Klasse zurück, aber um dieses Problem zu lösen, können wir sowohl NormalUser als auch AdminUser dieselbe übergeordnete Klasse erben lassen. Die Methode muss nur die übergeordnete Klasse zurückgeben

Der Code der übergeordneten Klasse lautet wie folgt:

 public static void login() {
        System.out.println("输入姓名:");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        System.out.println("输入你身份:1.管理员  2.普通用户");
        int i=scanner.nextInt();
        if(i==1) {
            //管理员
        } else {
            //普通用户
        }
    }

Der Unterklassencode:

public abstract class User { 
    private String name;
     public User(String name) {
        this.name = name;
    }
    public abstract void menu(); //菜单抽象方法,子类实现
}

Unterschiedliche Benutzer entsprechen unterschiedlichen Vorgängen, haben aber die gleichen Operanden. Daher benötigen die beiden Klassen ein Array zum Speichern ihrer jeweiligen Methoden, um Fehler zu vermeiden. Dieses Array muss vorbereitet werden, bevor der Benutzer es auswählt , daher sollte sich das Array in der Konstruktionsmethode wie folgt befinden:

public class AdminUser extends User{
    public AdminUser(String name) {
        super(name);
    }
     @Override
    public void menu() {
        System.out.println("欢迎使用");
        System.out.println("1.查找图书");
        System.out.println("2.新增图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("0.退出系统");
        System.out.println("选择操作");
    }
}
public class NormalUser extends User{
    public NormalUser(String name) {
        super(name);
    }
    @Override
    public void menu() {
        System.out.println("欢迎使用");
        System.out.println("1.查找图书");
        System.out.println("2.借阅图书");
        System.out.println("3.归还图书");
        System.out.println("0.退出系统");
        System.out.println("选择操作");
    }
}

3.operate package

Das Hinzufügen, Löschen und Ändern von Büchern, die Suche und andere Operationen werden tatsächlich auf dem Book-Array ausgeführt, also auf die Parameter dieser Methoden sind alle BookShelf-Klassen. Dann können wir eine Schnittstelle definieren, diese Methode in der Schnittstelle definieren und dann können andere Klassen diese Schnittstelle implementieren

Schnittstellencode:

public abstract class User {
    private String name;
    public IOperate[] ioperate;
    public void chooseOperate(int choice,BookShelf bookShelf) {
        ioperate[choice].work(bookShelf);
    }
    public User(String name) {
        this.name = name;
    }
    public abstract int menu();
}
public class AdminUser extends User{
    public AdminUser(String name) {
        super(name);
        this.ioperate=new IOperate[] {
                new Exit(),
                new FindBook(),
                new AddBook(),
                new DelBook(),
                new DisplayBook(),
        };
    }
    @Override
    public int menu() {
        System.out.println("欢迎使用");
        System.out.println("1.查找图书");
        System.out.println("2.新增图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("0.退出系统");
        System.out.println("选择操作");
        Scanner scanner=new Scanner(System.in);
        int choice=scanner.nextInt();
        return choice;
    }
}
public class NormalUser extends User{
    public NormalUser(String name) {
        super(name);
        this.ioperate=new IOperate[] {
                new Exit(),
                new FindBook(),
                new BorrowBook(),
                new ReturnBook(),
        };
    }
    @Override
    public int menu() {
        System.out.println("欢迎使用");
        System.out.println("1.查找图书");
        System.out.println("2.借阅图书");
        System.out.println("3.归还图书");
        System.out.println("0.退出系统");
        System.out.println("选择操作");
        Scanner scanner=new Scanner(System.in);
        int choice=scanner.nextInt();
        return choice;
    }
}

Was den Betrieb von Büchern betrifft, finden Sie hier ein Beispiel für das Hinzufügen von Büchern

Wir müssen die Informationen des Buches kennen und dann eine Buchklasse haben, um sie zu empfangen und sie schließlich in das Array einzufügen.

Gemäß dieser Logik muss die vorherige Buchklasse geändert werden: Fügen Sie eine Konstruktormethode hinzu Beachten Sie, dass die Position der Methode im Array mit der Position im Menü übereinstimmen sollte, die Sie geschrieben haben:

package operate;
import book.BookShelf;
public interface IOperate {
    public void work (BookShelf bookShelf);
}

Hinweis:

1 Die Variable gibt standardmäßig die geänderte Adresse aus. Wenn Sie den Inhalt des Buches drucken möchten, müssen Sie die toString-Methode in der Book-Klasse neu schreiben.

2 Vor dem Beenden muss die Exit-Methode das Array durchlaufen und alle ändern Objekte, auf die es verweist, sind praktisch für das Recycling. Obwohl das System sie auch nach Abschluss des Programms wiederverwendet, müssen Sie wissen, dass es nicht so einfach ist, einige Programme in großen Projekten zu stoppen, sobald sie ausgeführt werden

Das obige ist der detaillierte Inhalt vonSo schreiben Sie grundlegenden Funktionscode für die Java-Buchverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen