終于搞明白對象數(shù)組了,發(fā)個作業(yè)分享!理解有誤求大神指正??!
先定義一個類,用于對象數(shù)組(圖書資料就在這個數(shù)組里面)的建立
package Exception;
public class Book {
String name ; ?//定義一個書名的變量
int order ; //定義一個圖書序號的變量
Book(){
//這是一個無參的構(gòu)造方法,用來建立這個類的對象
}
public Book(String newName , int newOrder){
this.name =newName;
this.order= newOrder;
//這是一個有參的構(gòu)造方法,用來建立對象數(shù)組
}
//下面就是兩個變量的 get 和set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
@Override
//重寫toString 方法
public String toString() {
return "書名:"+name+"序號:"+order;
}
}
//下面是一個自定義的異常
package Exception;
public class InputError extends Exception {
private static final long serialVersionUID = 1L; //這句話我實在不知道干嘛的
InputError(){
}
InputError(String err){
super(err);
}//根據(jù)老師的視頻定義一個無參和一個有參的構(gòu)造方法,雖然我不是特別清楚具體含義。
}
//下面又是一個自定義的異常
package Exception;
public class MissBook extends Exception {
private static final long serialVersionUID = 1L;
MissBook(){
}
MissBook(String err){
super(err);
}
}
下面是借閱系統(tǒng)的構(gòu)建
package Exception;
import java.util.Scanner;
public class RentProcess {
Scanner sca =new Scanner(System.in);//創(chuàng)建Scanner輸入對象
public static void main(String[] args) throws InputError, MissBook {
// TODO Auto-generated method stub
RentProcess rp = new RentProcess();
rp.Yn();//圖書租約系統(tǒng)
}
void Yn() throws InputError, MissBook {
System.out.println("請問你是否借閱圖書");//判斷是否進(jìn)入系統(tǒng)
System.out.println("借書輸入1,結(jié)束請掛機(jī)");
String yn =sca.next();
try {
if("1".equals(yn)) {
System.out.println("XX借書系統(tǒng)歡迎您的使用");
process();
}else {
throw new InputError("錯啦");//異常拋出
}
}catch(InputError e) {
System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令");//捕獲InputError異常并處理
Yn();
}
}
void process()throws InputError, MissBook{
//進(jìn)入系統(tǒng)
System.out.println("以下為圖書列表");//展示圖書清單
Book [] book = new Book [10];
book[0]=new Book("紅樓夢",1);
book[1]=new Book("西游記",2);
book[2]=new Book("三國演義",3);
book[3]=new Book("水滸傳",4);
book[4]=new Book("莎士比亞傳記",5);
book[5]=new Book("羅馬的復(fù)興",6);
book[6]=new Book("飛人喬丹",7);
book[7]=new Book("紅與黑",8);
book[8]=new Book("命令與征服",9);
book[9]=new Book("帝國時代",10);
for(int i = 0 ; i<book.length ; i++) {
//遍歷數(shù)組
System.out.println("書名:"+book[i].getName()+"http://序號"+book[i].getOrder());
}
System.out.println("輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書");
String find = sca.next();
try {
if("1".equals(find)) {
//進(jìn)入圖書名稱查找
System.out.println("請輸入圖書名稱");
String bookname = sca.next(); //這里輸入的時候記得點一下控制臺,控制臺不好使,可能出現(xiàn)錯誤 例如輸入“西游記”,實際程序接收為“xiyouji西游記”,從而導(dǎo)致出錯。
for(int j = 0 ; j<book.length ; j++) {
if(bookname.equals(book[j].getName())) {
//匹配數(shù)組內(nèi)name?
System.out.println("查找到圖書:"+book[j].getName()+"序號為"+book[j].getOrder());
return;
}
}throw new MissBook("圖書不存在");
}else if("2".equals(find)) {
//進(jìn)入圖書序號查找
System.out.println("請輸入圖書序號");
int bookorder = sca.nextInt();
for(int k = 0 ; k<book.length ; k++) {
if(bookorder==book[k].getOrder()) {
//匹配數(shù)組內(nèi)order?
System.out.println("查找到圖書:"+book[k].getName()+"序號為"+book[k].getOrder());
return;
}
}throw new MissBook("圖書不存在");
}else {
throw new InputError("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令");//拋出異常
}
}catch(InputError e){
System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令");//捕獲輸入異常并處理
process();
}catch(MissBook e) {
System.out.println("圖書不存在");//捕獲圖書不存在異常,并進(jìn)行處理
process();
}
}
}
2018-07-20
String[] p = {"紅樓夢","西游記","三國演義","水滸傳","莎士比亞傳記","羅馬的復(fù)興","飛人喬丹","紅與黑","命令與征服","帝國時代",};
for(int i=0;i<p.length;i++){
book[i]=new Cl(p[i],i+1);
}
//這樣會不會好點...
2018-07-18
private static final long serialVersionUID = 1L;
Java中serialVersionUID的解釋;serialVersionUID作用是序列化時保持版本的兼容性,即在版本升級時反序列化仍保持對象的唯一性。序列化時為了保持版本的兼容性,即在版本升級時反序列化仍保持對象的唯一性。
不懂建議去查java:serialVersionUID