图书系统相关代码

import java.util.Objects;
import java.util.Scanner;

/**

  • @Author: Ben

  • @Date: 2020/10/29 13:32
    */
    public class Test3 {

    /**

    • ① 图书馆接口(Library)
    •  成员方法:
      
    •       borrow(),借阅图书
      
    •       revert(),归还图书
      
    • ② 图书类(Book)
    •  成员变量:
      
    •      图书名称(name)String类型
      
    •      出版社(publisher)String类型
      
    •  构造方法:
      
    •      通过形参初始化图书名称(name)和出版社(publisher)
      
    •  普通方法:
      
    • (1)设置getter和setter方法用于获取和设置类中的name变量的值;
    • (2)重写Equals方法,当且仅当书名(name)和出版社(publisher)均相等时,即为同一本书。
    • (3)重写toString方法,返回书名(name)和出版社(publisher)的信息,样式如下:
    • “书名:Java程序设计,出版社:清华大学出版社”
    • ③ 馆藏图书类(CollectionBook),继承自Book类,实现Library接口
    • 成员变量:
    • 图书编号(bNo)String类型
      
    • 所在书库(stacks)String类型
      
    • 是否借阅(isBorrow)boolean类型 图书状态为已借阅时,值为true
    • 构造方法:
    • 调用父类构造方法初始化书名(name)和出版社(publisher)信息,然后初始化图书编号(bNo)和线路图书书库(stacks)
    • 普通方法:
    • (1)实现接口中的borrow方法
    •      如果图书状态为已借阅,则输出“对不起,该图书已借阅”,否则,修改该图书状态为已借阅,输出“借阅成功”
      
    • (2)实现接口中的revert方法
    •      如果图书状态是可借阅状态,输出“该图书已归还”,否则,修改图书借阅状态为未借阅,并输出“还书成功”
      
    • ④ 通过main函数测试
    • (1)创建两个CollectionBook对象book1和book2,分别输出book1和book2,并调用其equals方法判断两个对象是否相等
    • (2)通过键盘输入整数,输入0,则对book1进行借阅,输入1,则对book1进行归还操作
      */

// A code block
var foo = ‘bar’;

        CollectionBook book1=new CollectionBook("1","2","3","4");
        CollectionBook book2=new CollectionBook("1","2","3","4");
        System.out.println(book1.equals(book2));
        Scanner scanner=new Scanner(System.in);
        int a=scanner.nextInt();
        if (a==0){
            book1.borrow();
        }
        if (a==1){
            book1.revert();
        }
    }
}
interface Library {
    void  borrow();
    void  revert();
}
class Book {
    protected String name;
    protected String publisher;

    public Book(String name, String publisher) {
        this.name = name;
        this.publisher = publisher;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Book book = (Book) o;
        return Objects.equals(name, book.name) &&
                Objects.equals(publisher, book.publisher);
    }

    @Override
    public String toString() {
        return "书名:"+name+",出版社:"+publisher;
    }
}

class CollectionBook extends Book implements Library {
    String bNo;
    String stacks;
    boolean isBorrow;

    public CollectionBook(String name, String publisher, String bNo, String stacks) {
        super(name, publisher);
        this.bNo = bNo;
        this.stacks = stacks;
    }

    @Override
    public void borrow() {
        if (isBorrow){
            System.out.println("对不起,该图书已借阅");
        }else {
            isBorrow=true;
            System.out.println("借阅成功");
        }
    }

    @Override
    public void revert() {
        if(!isBorrow){
            System.out.println("该图书已归还");
        }else {
            isBorrow=true;
            System.out.println("还书成功");
        }
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值