深夜成人在线,chinese国产一区二区,欧美精品乱码,日韩欧美在线视频免费观看,国产午夜不卡,日韩av影院在线,五月天婷婷国产精品

專業(yè)軟件設計師網(wǎng)站|服務平臺|服務商(加客服微信:cnitpm或QQ:947530340進軟件設計師學霸群)

軟題庫 學習課程
當前位置:信管網(wǎng) >> 軟件設計師 >> 每日一練 >> 文章內(nèi)容
軟件設計師案例分析每日一練試題(2025/2/5)

軟件設計師案例分析當天每日一練試題地址:www.ichunya.com/exam/ExamDayAL.aspx?t1=4

往期軟件設計師每日一練試題匯總:www.ichunya.com/class/27/e4_1.html

軟件設計師案例分析每日一練試題(2025/2/5)在線測試:www.ichunya.com/exam/ExamDayAL.aspx?t1=4&day=2025/2/5

點擊查看:更多軟件設計師習題與指導

軟件設計師案例分析每日一練試題內(nèi)容(2025/2/5)

試題七
閱讀以下說明以及Java程序。
【說明】
傳輸門是傳輸系統(tǒng)中的重要裝置。傳輸門具有Open(打開)、Closed(關閉)、Opening (正在打開)、StayOpen(保持打開)和Closing(正在關閉)五種狀態(tài)。觸發(fā)狀態(tài)的轉(zhuǎn)換事件有click、complete和timeout三種。事件與其相應的狀態(tài)轉(zhuǎn)換如下圖所示。

下面的Java代碼1與Java代碼2分別用兩種不同的設計思路對傳輸門進行狀態(tài)模擬,請?zhí)钛a代碼中的空缺。
【Java代碼1】
public class Door {
public static final int CLOSED = 1;    public static final int OPENING = 2;
public static final int OPEN = 3;  public static final int CLOSING = 4;
public static final int STAYOPEN = 5;  private int state = CLOSED;
//定義狀態(tài)變量,用不同的整數(shù)表示不同狀態(tài)
private void setState(int state){ this.state = state;}
//設置傳輸門當前狀態(tài)
public void getState() {
//此處代碼省略,本方法輸出狀態(tài)字符串,
//例如,當前狀態(tài)為CLOSED時,輸出字符串為"CLOSED"
}
public void click()  {  //發(fā)生click事件時進行狀態(tài)轉(zhuǎn)換
if (  (1)  ;)    setState(OPENING.;
else if (  (2)  ;)  setState{CLOSING.;
else if (  (3)  ;)    setState(STAYOPEN);
}
//發(fā)生timeout事件時進行狀態(tài)轉(zhuǎn)換
public void timeout() { if (state == OPEN)    setState(CLOSING.;}
public void complete() {//發(fā)生complete事件時進行狀態(tài)轉(zhuǎn)換
if (state == OPENING.    setState(OPEN);
else if  (state == CLOSING.  setState(CLOSED.;
}
public static void main(String [] args){
Door aDoor = new Door();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.click();
aDoor.getState();return;
}
}
【Java代碼2】
public class Door {
public final DoorState CLOSED = new DoorClosed(this);
public final DoorState OPENING = new DoorOpening(this);
public final DoorState OPEN = new DoorOpen(this);
public final DoorState CLOSING = new DoorClosing(this);
public final DoorState STAYOPEN = new DoorStayOpen(this);
private DoorState state = CLOSED;
//設置傳輸門當前狀態(tài)
public void setState(DoorState state) { this.state=state;}
public void getState(){ //根據(jù)當前狀態(tài)輸出對應的狀態(tài)字符串
System.out.println(state.getClass().getName());
}
public void click(){  (4)  ;}//發(fā)生click事件時進行狀態(tài)轉(zhuǎn)換
public void timeout(){  (5)  ;}//發(fā)生timeout事件時進行狀態(tài)轉(zhuǎn)換
public void complete(){  (6)  ;)//發(fā)生complete事件時進行狀態(tài)轉(zhuǎn)換
public static void main(String[]args){
Door aDoor = new Door();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();
aDoor.getState();aDoor.timeout();aDoor.getState();return;
}
}
public abstract class DoorState { //定義所有狀態(tài)類的基類
protected Door door ;
public DoorState(Door doer)  { this.door = door;}
public void click() {}
public void complete() {}
public void timeout() {}
}
class DoorClosed extends DoorState { //定義一個基本的Closed狀態(tài)
public DoorClosed(Door door) { super(door);}
public void click() {  (7)  ;)
//該類定義的其余代碼省略
}
//其余代碼省略

信管網(wǎng)試題答案與解析:www.ichunya.com/exam/ExamDayAL.aspx?t1=4&day=2025/2/5

信管網(wǎng)考友試題答案分享:

信管網(wǎng)cnit**************:
getstate()==“opening”<br>getstate()==“closing”<br>getstate()==“stayopen”<br>

信管網(wǎng)cnit**************:
1 state==closing || state==xlosed<br>2 state==stay open || state==opening<br>3 state==open<br>4 state.click()<br>5 state.tineout()<br>6 state.complete()<br>7 <br>

信管網(wǎng)試題答案與解析:www.ichunya.com/exam/ExamDayAL.aspx?t1=4&day=2025/2/5

信管網(wǎng)訂閱號

信管網(wǎng)視頻號

信管網(wǎng)抖音號

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!

信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質(zhì)量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。

信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,教材和資料參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。

相關內(nèi)容

發(fā)表評論  查看完整評論  

推薦文章

精選

課程

提問

評論

收藏