编写一个图书类Book,包图书的书号、书名、作者、出版社、价格等信息,要求能对属性可以进行初始化操作、修改属性值、获取属性值及重载toString()方法、equals()方法(用于比较书号)。

题目

编写一个图书类Book,包图书的书号、书名、作者、出版社、价格等信息,要求能对属性可以进行初始化操作、修改属性值、获取属性值及重载toString()方法、equals()方法(用于比较书号)。
测试数据:
9787115417046 java程序设计 龚炳江 人民邮电出版社 49.8元
9787115417001 C++程序设计 张卉堰 机械工业出版社 29.5元
978713541734 操作系统原理 秦胡荟 清华大学出版社 39元

Book类

/**
 * @Auther: 茶凡
 * @ClassName Book
 * @Description TODO
 * @date 2023/6/8 17:40
 * @Version 1.0
 */
public class Book {

    private String isbn; // 书号
    private String title; // 书名
    private String author; // 作者
    private String publisher; // 出版社
    private double price; // 价格

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

    // 获取属性值
    public String getIsbn() {
        return isbn;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public String getPublisher() {
        return publisher;
    }

    public double getPrice() {
        return price;
    }

    // 修改属性值
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

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

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

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    // 重载toString()方法
    @Override
    public String toString() {
        return "ISBN: " + isbn +
                ", Title: " + title +
                ", Author: " + author +
                ", Publisher: " + publisher +
                ", Price: " + price + "元";
    }

    // 重载equals()方法,用于比较书号
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Book) {
            Book other = (Book) obj;
            return isbn.equals(other.isbn);
        }
        return false;
    }
}

测试类

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 * @Auther: 茶凡
 * @ClassName BookTest
 * @Description TODO
 * @date 2023/6/8 17:41
 * @Version 1.0
 */
public class BookTest {
    public static void main(String[] args) {
        Book book1 = new Book("9787115417046", "java程序设计", "龚炳江", "人民邮电出版社", 49.8);
        Book book2 = new Book("9787115417001", "C++程序设计", "张卉堰", "机械工业出版社", 29.5);
        Book book3 = new Book("978713541734", "操作系统原理", "秦胡荟", "清华大学出版社", 39);


        ArrayList<Book> books = new ArrayList<>();
        books.add(book1);
        books.add(book2);
        books.add(book3);
        Collections.sort(books, Comparator.comparing(Book::getPrice).reversed());

        // 输出所有图书信息
        for (Book book : books) {
            System.out.println("书号:" + book.getIsbn() + "\t书名:" + book.getTitle()
                    + "\t作者:" + book.getAuthor() + "\t出版社:" + book.getPublisher()
                    + "\t价格:" + book.getPrice());
        }


        System.out.println(book1); // 输出book1的信息
        // 修改book1的价格和出版社
        book1.setPrice(50);
        book1.setPublisher("人民出版社");
        System.out.println(book1); // 再次输出book1的信息

        System.out.println(book2); // 输出book2的信息

        System.out.println(book1.equals(book2)); // 比较book1和book2的书号是否相同
        System.out.println(book1.equals(book3)); // 比较book1和book3的书号是否相同
    }
}


测试结果

书号:9787115417046 书名:java程序设计 作者:龚炳江 出版社:人民邮电出版社 价格:49.8
书号:978713541734 书名:操作系统原理 作者:秦胡荟 出版社:清华大学出版社 价格:39.0
书号:9787115417001 书名:C++程序设计 作者:张卉堰 出版社:机械工业出版社 价格:29.5
ISBN: 9787115417046, Title: java程序设计, Author: 龚炳江, Publisher: 人民邮电出版社, Price: 49.8元
ISBN: 9787115417046, Title: java程序设计, Author: 龚炳江, Publisher: 人民出版社, Price: 50.0元
ISBN: 9787115417001, Title: C++程序设计, Author: 张卉堰, Publisher: 机械工业出版社, Price: 29.5元
false
false

你可能感兴趣的:(Java初级,java,jvm)