15-5 顗獄EX

物件的某一個性質可以是另一種物件,這就是所謂的聚合(Aggregation)。若檢視我們的範例程式目錄,可以看到另一個目錄 @team,此類別用來定義「對伍」,其建構函式如下:

Example 1: 15-物件導向程式設計/@team/team.mfunction t = team(name, event, person1, person2, person3, person4) %TEAM team class constructor t.name = name; t.event = event; t.member(1) = person1; t.member(2) = person2; t.member(3) = person3; t.member(4) = person4; t = class(t, 'team'); % 將 t 加持成 team 物件

由上述建構函式可以看出,每一支隊伍必須有名稱(name)、參加項目(event),以及四位隊員,而這四位隊員即是由 person 類別所產生的物件,換句話說,team 物件的 member 性質指向四個 person 物件,這就是 OOP 之聚合的體現。例如,我們可以組合四個高手以形成一個夢幻隊伍,來參加2012倫敦奧運的400公尺接力賽,範例如下:

Example 2: 15-物件導向程式設計/team01.mp1 = person('王建民', '男', 1.93, 95); p2 = person('姚明', '男', 2.26, 134); p3 = person('劉翔', '男', 1.88, 74); p4 = person('朱木炎', '男', 1.73, 59); myTeam = team('Greater China', '2008 Olympics, 4x100', p1, p2, p3, p4)myTeam: 名稱 = "Greater China", 項目 = "2008 Olympics, 4x100", 隊員 = [王建民 姚明 劉翔 朱木炎 ]

有關於 team 類別的顯示函式等,讀者可以自行參考本書的範例程式,在此不再贅述。


MATLAB程式設計:進階篇