Version 7.1 cũng đã hỗ trợ lập trình hướng đối tượng rồi. Suốt version 7 cho đến R2007b, hình như là cách lập trình hướng đối tượng giống nhau. Sang R2008a thì có thay đổi.
Với version 7.1, cấu trúc của nó rất đơn giản:
1 thư mục sẽ là một lớp, thư mục này có tên bắt đầu bằng ký tự @
File khởi tạo đối tượng của lớp phải có tên giống tên thư mục (bỏ chữ @)
File khởi tạo ấy sẽ khai báo các biến của đối tượng. Theo đặc điểm của Matlab, nó sẽ tự nhận biết kiểu nào là phù hợp, chứ mình không cần định kiểu cho biến. (ví dụ gán biến a=1 thì a sẽ là double, gán a=true thì a sẽ là boolean)
Các biến của đối tượng không có phân biệt giữa public / protected / private (nhưng sang version 7.6 - R2008a thì có). Mặc định tất cả các biến là private, hàm nào ở bên ngoài thư mục của lớp đều không truy cập được biến, mà phải gọi một hàm bên trong thư mục của lớp (bất kỳ file .m nào thuộc thư mục đó đều có quyền truy cập biến của đối tượng). Người ta hay viết hàm set.m và get.m cho mỗi lớp.
Matlab có kiểu override các hàm cơ bản, ví dụ nếu mình viết hàm có tên plus.m, thì khi thực hiện lệnh a+b (với a và b là 2 đối tượng của lớp đó), nó tương đương với plus(a,b). Tương tự với các hàm trùng với từ khóa minus, multiply...
|