物件的某一個性質可以是另一種物件,這就是所謂的聚合(Aggregation)。若檢視我們的範例程式目錄,可以看到另一個目錄 @team,此類別用來定義「對伍」,其建構函式如下:
Example 1: 15-物件導向程式設計/@team/team.m function 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.m p1 = 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程式設計:進階篇