int command=inputCommad();中 inputCommad();前面不需要加類名.嗎?
在老師給的參考作業(yè)中,第十六行“//取得整形命令”中int command=inputCommad();中 ?inputCommad();前面不需要加“類名.”或者“對象名.”嗎?
詳細代碼如下:
package?com.imooc.proj_1; import?java.util.Scanner; public?class?BookManagerEasy?{ private?static?Scanner?console?=?new?Scanner(System.in); public?static?void?main(String[]?args)?{ //定義”圖書“數組 String[]?books?=?{?"C語言",?"數據結構",?"匯編語言",?"高數",?"大學語文",?"毛概"?}; while?(true)?{ System.out.println("輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書"); String?book; try?{ //取得整型命令 int?command?=?inputCommand(); //根據不同命令值,進行不同操作 switch?(command)?{ case?1://按照圖書名稱選擇圖書 book?=?getBookByName(books); System.out.println("book:"?+?book); break; case?2://按照圖書序號(數組下標)選擇圖書 book?=?getBookByNumber(books); System.out.println("book:"?+?book); break; case?-1://返回值為-1,說明輸入有誤 System.out.println("命令輸入錯誤!請根據提示輸入數字命令!"); continue; default://其他值的命令均認為是錯誤命令 System.out.println("命令輸入錯誤!"); continue; } break;//退出程序 }?catch?(Exception?bne)?{ //捕獲”圖書不存在異?!皶r,要求重新輸入命令 System.out.println(bne.getMessage()); continue; }? } } //按照圖書名稱查詢圖書 private?static?String?getBookByName(String[]?books) throws?Exception?{ System.out.println("輸入圖書名稱:"); //獲取輸入的圖書名稱 String?name?=?console.next(); for?(int?i?=?0;?i?<?books.length;?i++)?{ if?(name.equals(books[i])) //輸入的名稱與某一圖書名稱匹配,返回該圖書 return?books[i]; } //若無匹配,拋出”圖書不存在異?!? throw?new?Exception("圖書不存在!"); } //根據圖書序號(數組下標)查詢圖書 private?static?String?getBookByNumber(String[]?books) throws?Exception?{ while?(true)?{ System.out.println("輸入圖書序號:"); try?{ //獲取輸入的圖書序號(數組下標) int?index?=?inputCommand(); //若返回值為-1 if(index?==?-1){ System.out.println("命令輸入錯誤!請根據提示輸入數字命令!"); continue; } //若不出現(xiàn)”數組下標越界異常“,則返回相應位置的圖書 String?book?=?books[index]; return?book; }?catch?(ArrayIndexOutOfBoundsException?e)?{ //輸入的序號不存在(引發(fā)”數組下標越界異?!埃?,則拋出”圖書不存在異?!? Exception?bookNotExists?=?new?Exception("圖書不存在!"); bookNotExists.initCause(e); throw?bookNotExists; } } } //從控制臺輸入命令,用于輸入命令和輸入圖書序號 private?static?int?inputCommand(){ int?command; try?{ command?=?console.nextInt(); return?command; }?catch?(Exception?e)?{ //若輸入字符型或者字符串,則拋出異常,捕獲該異常,拋出”錯誤命令異常“ console?=?new?Scanner(System.in); //返回-1 return?-1; } } }
2016-12-27
這是static修飾的方法 類方法 不需要實例化對象就可以直接調用的。標準寫法應該是BookManagerEasy.inputCommad()。類名省略掉也可以直接調用。如果不是類方法的話在main函數里就必須要實例化對象調用了
2016-12-27
這句代碼應該不是在main函數里面吧,這么寫 應該是在方法里面 直接調用一個返回值為int類型的方法 然后賦值給int型變量command 。也就是?inputCommad() 方法,它返回值應該是int才可以這么用
2016-12-25
當然需要了,靜態(tài)方法類名調用,其他方法需要實例調用