溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java 面向?qū)ο?之 關(guān)鍵字instanceof

發(fā)布時(shí)間:2020-08-11 16:30:20 來(lái)源:ITPUB博客 閱讀:132 作者:huyang_ya 欄目:編程語(yǔ)言

轉(zhuǎn)載于 :  http://www.verejava.com/?id=16992811364048  

/**
	知識(shí)點(diǎn): 關(guān)鍵字 instanceof
	題目:輸出參加Oracle大會(huì)的人分類信息
	思路:
		1. 抽象出類 : 會(huì)議廳(Hall), 人種(Person){程序員(Programer),管理者(Manager)}
		2. 找出類關(guān)系: 
			2.1 {程序員(Programer),管理者(Manager)} 是 人種(Person) 分類
			2.2 人種(Person)->會(huì)議廳(Hall)
		3. 找出屬性: 
			3.1 會(huì)議廳(Hall)(會(huì)議名稱,容納人數(shù))
			3.2 人種(Person)(姓名)
		4. 找出方法:
			4.1 要參加會(huì)議 會(huì)議廳(Hall) 登記參加會(huì)議的每個(gè)人信息 register(Person p) 
			4.2 輸出參加大會(huì)的人信息 output()
*/public class TestInstanceof {	
	public static void main(String[] args) {		//Oracle說(shuō)我要在Moscore center 舉辦一年一度的大會(huì), 需要一個(gè)
		//容納1000人的會(huì)廳
		
		//開(kāi)一個(gè)能容量1000人的會(huì)廳
		Hall h = new Hall(1000);		//開(kāi)始登記注冊(cè)
		h.register(new Programer("Joseph"));
		h.register(new Programer("james"));
		h.register(new Manager("Page"));
		h.register(new Manager("Joe"));		//打印輸出
		h.output();
	}
}class Hall {	
	private String name;//會(huì)議名稱
	private Person[] persons;//登記冊(cè)
	public Hall(int maxSize) {
		persons = new Person[maxSize];
	}	//登記每個(gè)參加會(huì)議的人信息
	//思路:
	//	1. 循環(huán)檢測(cè)如果沒(méi)有超出容量,將該人添加到  登記冊(cè)
	//	    如果超出容量,提示已經(jīng)沒(méi)有注冊(cè)名額,注冊(cè)完畢
	public void register(Person newPerson) {		int flag = 0;//檢測(cè)是否注冊(cè)完畢
		for (int i = 0; i < persons.length; i++) {			if (persons[i] == null) {
				persons[i] = newPerson;				break;
			}
			flag++;
		}		if (flag == persons.length) {
			System.out.println("已經(jīng)沒(méi)有注冊(cè)名額,注冊(cè)完畢");
		}
	}	//輸出參加大會(huì)的人分類信息
	//	思路:
	//		1. 循環(huán)打印出每個(gè)已經(jīng)參加登記人的信息
	//		2. 但是在循環(huán)打印的時(shí)候要判斷 到底打印的是 程序員 還是 經(jīng)理
	public void output() {		for (int i = 0; i < persons.length; i++) {			//打印已經(jīng)登記的人信息
			if (persons[i] != null) {				if (persons[i] instanceof Programer) {
					System.out.println(persons[i].getName() + " 屬于程序員");
				}				if (persons[i] instanceof Manager) {
					System.out.println(persons[i].getName() + " 屬于經(jīng)理以上級(jí)別");
				}
			}
		}
	}
}abstract class Person {	
	protected String name;//姓名
	public Person(String name) {		this.name = name;
	}	public String getName() {		return this.name;
	}
}class Programer extends Person {	
	public Programer(String name) {		super(name);
	}
}class Manager extends Person {	
	public Manager(String name) {		super(name);
	}
}

轉(zhuǎn)載于 :  http://www.verejava.com/?id=16992811364048  

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI