Javaプログラミング課題:Bookクラスの作成と10%割引の適用方法

プログラミング

プログラミングの課題である「Bookクラス」を作成し、価格に10%割引を適用する方法について解説します。この課題は、Javaでオブジェクト指向プログラミングを学びながら、クラスの作成、メソッドの実装、オーバーライドなどを練習するためのものです。

Bookクラスの作成

まず、演習課題1-1の指示に従い、`Book`クラスを作成します。`Book`クラスには、書籍名、著者、ISBN番号、価格をフィールドとして持ち、コンストラクタと各フィールドに対応するgetter/setterを実装します。また、`toString`メソッドをオーバーライドして、書籍情報をきれいに表示できるようにします。

public class Book {
private String title;
private String author;
private String isbn;
private int price;

public Book(String title, String author, String isbn, int price) {
this.title = title;
this.author = author;
this.isbn = isbn;
this.price = price;
}

public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }

public String getAuthor() { return author; }
public void setAuthor(String author) { this.author = author; }

public String getIsbn() { return isbn; }
public void setIsbn(String isbn) { this.isbn = isbn; }

public int getPrice() { return price; }
public void setPrice(int price) { this.price = price; }

@Override
public String toString() {
return "Book: \"" + title + "\" by " + author + " (ISBN: " + isbn + ") " + price + "円";
}

@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Book book = (Book) obj;
return isbn.equals(book.isbn);
}

@Override
public int hashCode() { return isbn.hashCode(); }
}

BookMainクラスの作成と情報表示

次に、演習課題1-2の指示に従い、`BookMain`クラスを作成し、`Book`インスタンスを生成して書籍情報を出力します。ここで、インスタンスを作成し、各書籍の情報を`toString`メソッドを用いて表示します。

public class BookMain {
public static void main(String[] args) {
Book book1 = new Book("Java入門", "田中一郎", "9781234567890", 3000);
Book book2 = new Book("Python入門", "山田太郎", "9780987654321", 2800);
Book book3 = new Book("データベース設計", "佐藤花子", "9781122334455", 3500);

System.out.println(book1);
System.out.println(book2);
System.out.println(book3);
}
}

10%割引を適用する方法

次に、演習課題1-3にある「10%割引を適用する方法」について解説します。`Book`クラスには、価格に10%割引を適用するためのメソッドを追加します。

割引処理は、`getPrice()`で価格を取得した後、10%を割引いた価格を`setPrice()`で設定することで実現できます。以下にその実装方法を示します。

// BookMainクラスの一部として追加
book2.setTitle("Java応用"); // タイトル変更
book3.setPrice((int)(book3.getPrice() * 0.9)); // 10%割引
System.out.println(book1);
System.out.println(book2);
System.out.println(book3);

このコードでは、`book3`の価格を10%割引して、`setPrice()`で新しい価格を設定しています。この処理を実行すると、出力結果が以下のようになります。

期待される出力結果

Book: "Java入門" by 田中一郎 (ISBN: 9781234567890) 3000円
Book: "Python入門" by 山田太郎 (ISBN: 9780987654321) 2800円
Book: "データベース設計" by 佐藤花子 (ISBN: 9781122334455) 3500円
Book: "Java入門" by 田中一郎 (ISBN: 9781234567890) 3000円
Book: "Java応用" by 山田太郎 (ISBN: 9780987654321) 2800円
Book: "データベース設計" by 佐藤花子 (ISBN: 9781122334455) 3150円

まとめ

この課題では、Javaでクラスを作成し、オブジェクト指向プログラミングの基本を学びました。`Book`クラスでは、フィールド、コンストラクタ、メソッド、`equals`および`hashCode`メソッドのオーバーライドを行い、`BookMain`クラスで書籍の情報を出力しました。さらに、価格に10%割引を適用する処理を実装し、コードを通じて学びました。

コメント

タイトルとURLをコピーしました