Java書籍管理の基本的な関数コードの書き方
まず、ランニング効果を見てみましょう
分析してみましょう:
Java では、オブジェクト間の相互作用によって問題が解決されるので、どのようなオブジェクトがあるかを見てみましょう。
最初の 2 つの明らかなオブジェクトは user と book です。したがって、2 つのパッケージ book と user
pass As you を作成します。上の図でわかるように、異なるユーザーは同じ操作を持っていますが、異なる操作も持っているので、すべての操作を 1 つのパッケージに入れて、必要な操作だけを直接呼び出すこともできます。このパッケージには、operate
## という名前を付けました。 #1.book パッケージまず、パッケージ内に Book クラスが必要です。このクラスには、本のタイトル、著者、本の種類、価格、貸出状況などのさまざまな情報が記録されます。すべてプライベートな変更を使用しています。パッケージ内のすべてのクラスにメンバー変数を追加し、後で繰り返さない外部メソッドのみを提供します コードは次のとおりです (コードの一部のみを示します):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; } }
public class BookShelf { private Book[] books=new Book[1000]; private int count; //记录书的数量 }
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]; } }
##パッケージには通常ユーザー (NormalUser) と管理者 (AdminUser) の 2 つのクラスが必ず存在しますが、焦点は、図内のさまざまなユーザーに対してさまざまな操作を実装する方法です
次に、最初にログイン メソッドを書き出してから分析しましょう:
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 { //普通用户 } }
メソッドは、どのような種類のユーザーに基づいているかを決定します。この問題を解決するには、NormalUser と AdminUser の両方に同じ親クラスを継承させ、メソッドは親クラスを返すだけで済みます。 .
親クラス コードは次のとおりです:
public abstract class User { private String name; public User(String name) { this.name = name; } public abstract void menu(); //菜单抽象方法,子类实现 }
サブクラス コード:
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("选择操作"); } }
異なるユーザーは異なる操作に対応しますが、オペランドは同じであるため、2 つのクラスは次の必要があります。エラーを防ぐためにそれぞれのメソッドを格納する配列であり、この配列はユーザーが選択する前に準備する必要があります。したがって、配列は構築メソッド内にある必要があります。変更されたクラスは次のとおりです:
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; } }
3. operate package
書籍の追加、削除、変更、チェックなどの操作は、実際には Book 配列で操作されるため、これらのメソッドのパラメータはすべて BookShelf クラスであるため、インターフェイスを定義し、このメソッドを定義できます。インターフェイス内でこのインターフェイスを実装すると、他のクラスがこのインターフェイスを実装できるようになります。
インターフェイス コード:
package operate; import book.BookShelf; public interface IOperate { public void work (BookShelf bookShelf); }
Book 操作に関しては、書籍を追加する例を次に示します
次のようにする必要があります。本の情報を知っていて、それを受け取る Book クラスを用意し、最後にそれを配列に入れます。
このロジックによると、前の Book クラスを変更する必要があります。Book にコンストラクター メソッドを追加します。書籍情報を受け取るクラス。配列内のメソッドの位置は、作成したメニュー内の位置に対応する必要があることに注意してください。
public Book(String name, String author, String type, int price) { this.name = name; this.author = author; this.type = type; this.price = price; }
書籍メソッド コードを追加します:
public class AddBook implements IOperate { @Override public void work(BookShelf bookShelf) { System.out.println("请输入图书的名字:"); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); System.out.println("请输入图书的作者:"); String author = scanner.nextLine(); System.out.println("请输入图书的类型:"); String type = scanner.nextLine(); System.out.println("请输入图书的价格:"); int price = scanner.nextInt(); Book book = new Book(name,author,type,price); int count=bookShelf.getCount(); bookShelf.setBooks(count,book); bookShelf.setCount(count+1); System.out.println("新增成功"); } }
注:
1. 参照変数はデフォルトで変更されたアドレスを出力するため、ブックの内容を印刷したい場合は、 Book クラス
##2 の toString メソッドをオーバーライドする必要があります。メソッドは終了する前に配列を走査し、リサイクルを容易にするためにそれが指すすべてのオブジェクトを null に変更する必要があります。システムはプログラム終了後にもリサイクルしますが、大規模なプロジェクトの一部のプログラムを一度停止するのはそれほど簡単ではないことを知っておく必要があります。彼らは走り始めます。/以上がJava書籍管理の基本的な関数コードの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。
