图书类
package com.book;
public class Book {
private int Id; //序号
private String bookName; //书名
/*get和set方法封装属性*/
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
}
小学知识类,继承图书类
package com.book;
public class BookSub1 extends Book{
public BookSub1(){//无参构造方法
}
public BookSub1(int Id,String bookName){//有参构造方法
this.setId(Id);
this.setBookName(bookName);
}
}
技术知识类,继承图书类
package com.book;
public class Booksub2 extends Book {
public Booksub2(){//无参构造方法
}
public Booksub2(int Id,String bookName){//有参构造方法
this.setId(Id);
this.setBookName(bookName);
}
}
mian方法
package com.book;
import java.util.InputMismatchException;
public class test {
public static void main(String[] args) {
Book[] books ={new BookSub1(1,"数学"),
new BookSub1(2,"语文"),
new BookSub1(3,"英语"),
new Booksub2(4, "Ios 教程"),
new Booksub2(5, "Java教程"),
new Booksub2(6, "C++ 教程")};
test te =new test();
Scanner input =new Scanner(System.in);
while(true){
System.out.println("输入命令:1.按照名称查找图书 ,2.按照序号查找图书");
try {
String str =input.next();
if(str.equals("1") str.equals("2")){//如果是1或2就进入方法块
int val =Integer.parseInt(str);
switch (val) {
case 1: te.BookWhitName(books,input);
break;
default: te.BookWhitNumber(books,input);
break; }
}else
throw new InputMismatchException("按提示输入数字命令");//否则就抛出异常
} catch (InputMismatchException e) {
e.printStackTrace();
System.out.println("按提示输入正确数字命令!");
}
}
}
BookWhitName(Book[] books, Scanner input)//通过序号查找图书
public void BookWhitName(Book[] books, Scanner input){//通过名称查找图书
System.out.println("输入图书名称:");
String strin ="图书不存在"; //记录图书是否存在的标识符;
try {
String str = input.next();
for(int i=0;i<books.length;i++){ //遍历数组
if(books[i].getBookName().equals(str)){//获取数组每位元素来对比,图书存在就打印
System.out.println("book:"+str);
strin = books[i].getBookName(); //记录图书,存在就赋值给标识符;
}
}
if(strin.equals("图书不存在")){ //如果标识符的值未变,代表图书不存在
System.out.println("图书不存在");
throw new Exception("图书不存在");//抛出异常
}
} catch (Exception e) {
e.printStackTrace();
}
}
BookWhitNumber(Book[] books, Scanner input)//通过序号查找图书
public void BookWhitNumber(Book[] books, Scanner input){//通过序号查找图书
System.out.println("输入图书序号:");
String strin ="图书不存在"; //记录图书是否存在的标识符;
try {
String str = input.next();
for(int i=0;i<books.length;i++){ //遍历数组
String arrStr =String.valueOf(books[i].getId());//获取数组每个ID元素,转变成字符串
if(arrStr.equals(str)){ //判断图书是否存在,存在就打印
strin = books[i].getBookName(); //记录图书,存在就赋值给标识符;
System.out.println("book:"+strin);
}
}
if(strin.equals("图书不存在")){ //如果标识符的值未变,代表图书不存在
System.out.println("图书不存在");
throw new Exception("图书不存在"); //抛出异常
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试结果
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
1
输入图书名称:
2
图书不存在
java.lang.Exception: 图书不存在
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
at com.book.test.BookWhitName(test.java:71)
at com.book.test.main(test.java:39)
1
输入图书名称:
的
图书不存在
java.lang.Exception: 图书不存在
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
at com.book.test.BookWhitName(test.java:71)
at com.book.test.main(test.java:39)
1
输入图书名称:
数学
book:数学
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
2
输入图书序号:
2372
图书不存在
java.lang.Exception: 图书不存在
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
at com.book.test.BookWhitNumber(test.java:102)
at com.book.test.main(test.java:41)
2
输入图书序号:
5
book:Java教程
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
热门评论
感觉两类图书的区分在这道题里没有具体区别