閱讀以下說明和Java程序,填補(bǔ)代碼中的空缺(1)~(5),將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
對(duì)部分樂器進(jìn)行建模,其類圖如圖6-1所示,包括:樂器(Instrument)、管樂器(Wind)、打擊樂器( Percussion)、弦樂器(Stringed)、木管樂器(Woodwind)、銅管樂器(Brass)。
圖6-1 類圖
下面是實(shí)現(xiàn)上述設(shè)計(jì)的Java代碼,其中音樂類(Music)使用各類樂器(Instrument)進(jìn)行演奏和調(diào)音等操作。
【Java代碼】
enum Note{ /* 枚舉各種音調(diào) */
MIDDLE_C, C_SHARP, B_FLAT; //其他略
}
interface Instrument { /* 接口,樂器 */
(1) ; //play方法接口
void adjust() ; //adjust方法接口
}
class Wind (2) {
public void play(Note n) { System.out.println("Wind.play()"+n); }
public void adjust() { System.out.println("Wind.adjust()"); }
}
/* 類Percussion和Stringet實(shí)現(xiàn)代碼略 */
class Brass (3) {
public void play(Note n) { System.out.println("Brass.play()"+n); }
public void adjust () { System.out.println("Brass.adjust()"); }
}
class Woodwind extends Wind {
public void play (Note n) { System.out.println("Woodwind.play()"+n); }
}
public class Music {
void tune(Instrument_i) { i.play(Note.MIDDLE_C); }
void adjust(Instrument i) { i.adjust(); }
void tuneAll (4) e ) {
for(lnstrument i : e) {
adjust(i);
tune(i);
}
}
public static void main(String[] args) {
Music music= (5) Music();
Instrument[] orchestra={ new Wind(), new Woodwind() };
music.tuneAll(orchestra);
}
}
本程序運(yùn)行后的輸出結(jié)果為:
Wind.adjust()
Wind.play() MIDDLE_C
Wind.adjust()
Woodwind.play() MIDDLE_C