第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

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;
		}
	}
}


正在回答

3 回答

這是static修飾的方法 類方法 不需要實例化對象就可以直接調用的。標準寫法應該是BookManagerEasy.inputCommad()。類名省略掉也可以直接調用。如果不是類方法的話在main函數里就必須要實例化對象調用了

0 回復 有任何疑惑可以回復我~
#1

昵稱是JaVa 提問者

你的意思是在本類里,靜態(tài)方法可以直接用方法名調用了?
2016-12-27 回復 有任何疑惑可以回復我~

這句代碼應該不是在main函數里面吧,這么寫 應該是在方法里面 直接調用一個返回值為int類型的方法 然后賦值給int型變量command 。也就是?inputCommad() 方法,它返回值應該是int才可以這么用


0 回復 有任何疑惑可以回復我~
#1

昵稱是JaVa 提問者

我已經在修改了問題,把詳細代碼加了進去。返回值類型確實是int類型的,但是這句代碼在main函數里,第16行就是。
2016-12-27 回復 有任何疑惑可以回復我~

當然需要了,靜態(tài)方法類名調用,其他方法需要實例調用

0 回復 有任何疑惑可以回復我~
#1

昵稱是JaVa 提問者

可是老師給的參考代碼中,卻如上面的代碼所示,沒有類名.或者實例,而是直接方法明調用了,這是為什么呢?
2016-12-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

int command=inputCommad();中 inputCommad();前面不需要加類名.嗎?

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號