面向对象练习题

  1. 要求:
    (1)按照题目所给变量名称、类型和方法名称进行编程,禁止修改;
    (2)编程环境可选,Eclipse或JDK均可
    ① 图书馆接口(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进行归还操作
import java.util.*;




interface Library{
    public abstract void borrow();
    public abstract void revert();
}
class Book{
    String name;
    String publisher;
    Book(String name,String publisher){
        name=name;
        publisher=publisher;
    }
    public void getter(){
        System.out.println(name);
    }
    public String setter(String str1){
        name=str1;
        System.out.println(name);
        return null;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Book)) 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;
        CollectionBook(String name,String publisher,String bNo,String stacks){
            super(name,publisher);
            bNo=bNo;
            stacks=stacks;
        }
        public  void borrow(){
            if (isBorrow){
                System.out.println("对不起,该图书已借阅");
            }else {
                isBorrow=false;
                System.out.println("借阅成功");
            }
        }
        public  void revert(){
            if (isBorrow){
                isBorrow=false;
                System.out.println("还书成功");
            }else{
                System.out.println("该图书已归还");
            }

        }
    }

   public class test3{
    public static void main(String[]args){
        CollectionBook book1=new CollectionBook("java程序设计","清华大学出版社","11111","线路图书库1");
        CollectionBook book2=new CollectionBook("java程序设计","清华大学出版社","11111","线路图书库1");
            System.out.println("比较结果:"+book1.equals(book2) );
            System.out.println("请输入0或1");
            System.out.println("请输入:");
         Scanner sc =new Scanner(System.in );
         int a=sc.nextInt();
         if(a==1){
            book1.borrow();
         }if(a==0){
             book1.revert();
        }else {
        }

    }

   }



结果为


``比较结果:true
请输入0或1
请输入:
0
该图书已归还`

上一篇:Solidworks模型导入Gazebo(详细过程)


下一篇:今日看