溫馨提示×

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

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

Java中如何使用接口實(shí)現(xiàn)火車(chē)票實(shí)例

發(fā)布時(shí)間:2021-12-30 15:23:35 來(lái)源:億速云 閱讀:138 作者:小新 欄目:編程語(yǔ)言

這篇文章主要為大家展示了“Java中如何使用接口實(shí)現(xiàn)火車(chē)票實(shí)例”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Java中如何使用接口實(shí)現(xiàn)火車(chē)票實(shí)例”這篇文章吧。

/**
	接口的實(shí)際應(yīng)用:
	題目: 兩個(gè)人A,B開(kāi)發(fā)一個(gè)火車(chē)票顯示功能A負(fù)責(zé)客戶(hù)端, B負(fù)責(zé)服務(wù)器端
	思路:
		1. 抽象出類(lèi): 
			1.1 客戶(hù)端顯示類(lèi)(Terminal)
			1.2 服務(wù)器端服務(wù)類(lèi)(TrainService)
			1.3 火車(chē)票(Ticket)
		2. 找出類(lèi)關(guān)系: 
			2.1 客戶(hù)端 調(diào)用 服務(wù)器端 的獲取火車(chē)票信息顯示
				TrainService -> Terminal(調(diào)用)
			2.2 服務(wù)器端 提供 火車(chē)票信息 給 客戶(hù)端 
				Ticket->TrainService(多對(duì)1) Ticket -> Terminal(多對(duì)多)
		3. 找出類(lèi)屬性:
			3.1 Ticket(車(chē)次,出發(fā)地,到達(dá)地,票價(jià))
			3.2 TrainService(火車(chē)站名稱(chēng))
			3.3 Terminal(代售點(diǎn)名稱(chēng))
		4. 找出類(lèi)方法: 
			4.1 TrainService: 提供火車(chē)票信息 Ticket[] getTickets()
			4.2 Terminal: 顯示火車(chē)票信息 display()
*/import java.util.Scanner;public class ApplyInterface {	
	public static void main(String[] args) {		//北京西站火車(chē)票服務(wù)器打開(kāi)
		TrainService beijingWestService = new BeijingWestTrainService("北京西站");		//北京站火車(chē)票服務(wù)器打開(kāi)
		TrainService beijingService = new BeijingTrainService("北京站");		//我是北京朝陽(yáng)區(qū)大黃莊的 代售點(diǎn)
		Terminal t = new Terminal("北京朝陽(yáng)區(qū)大黃莊的 代售點(diǎn)");
		Scanner in = new Scanner(System.in);
		System.out.println("請(qǐng)輸入要查的火車(chē)站代碼 1:北京西站 2:北京站");		int trainId = in.nextInt();		if (trainId == 1) {
			t.setTrainService(beijingWestService);
		}		if (trainId == 2) {
			t.setTrainService(beijingService);
		}		//打開(kāi)火車(chē)電腦終端 查看火車(chē)票信息
		t.display();
	}
}class Ticket {	
	private String id;//車(chē)次
	private String startCity;//出發(fā)城市
	private String endCity;//到達(dá)城市
	private float price;//票價(jià)
	public Ticket(String id, String startCity, String endCity, float price) {		this.id = id;		this.startCity = startCity;		this.endCity = endCity;		this.price = price;
	}	public String getId() {		return this.id;
	}	public String getStartCity() {		return this.startCity;
	}	public String getEndCity() {		return this.endCity;
	}	public float getPrice() {		return this.price;
	}
}interface TrainService {	//A和B約定一個(gè)提供火車(chē)票的方法
	public Ticket[] getTickets();	//獲取火車(chē)站名字
	public String getName();
}class BeijingWestTrainService implements TrainService {	
	private String name;	public BeijingWestTrainService(String name) {		this.name = name;
	}	public String getName() {		return this.name;
	}	//提供火車(chē)票的實(shí)現(xiàn)方法
	public Ticket[] getTickets() {
		Ticket[] tickets = { new Ticket("T1", "北京", "長(zhǎng)沙", 175f) };		return tickets;
	}
}class BeijingTrainService implements TrainService {	
	private String name;	public BeijingTrainService(String name) {		this.name = name;
	}	public String getName() {		return this.name;
	}	//提供火車(chē)票的實(shí)現(xiàn)方法
	public Ticket[] getTickets() {
		Ticket[] tickets = { new Ticket("T215", "北京", "吉林", 130f) };		return tickets;
	}
}class Terminal {	
	private String proxy;//代售點(diǎn)名稱(chēng)
	private Ticket[] tickets;// 火車(chē)票引用
	private TrainService trainService;// 服務(wù)器接口引用
	public Terminal(String proxy) {		this.proxy = proxy;
	}	public void setTrainService(TrainService trainService) {		this.trainService = trainService;
	}	//顯示火車(chē)票的信息
	//	思路:
	//		1. 首先要從服務(wù)器端 獲取 火車(chē)票信息
	//		2. 循環(huán)把火車(chē)票信息顯示在電腦終端上
	public void display() {		//獲取火車(chē)票信息
		tickets = trainService.getTickets();		//輸出火車(chē)票信息
		System.out.println(trainService.getName());
		System.out.println("車(chē)次------出發(fā)地------到達(dá)地------票價(jià)");		if (tickets != null) {			for (int i = 0; i < tickets.length; i++) {
				System.out.println(tickets[i].getId() + "------" + tickets[i].getStartCity() + "------" + tickets[i].getEndCity() + "------" + tickets[i].getPrice());
			}
		}
	}
}

以上是“Java中如何使用接口實(shí)現(xiàn)火車(chē)票實(shí)例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向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