Smalltalk quy định ba loại thông điệp có thể truyền cho các đối tượng, giữa các loại thông điệp này có độưu tiên khác nhau. Nếu xem các thông điệp tương tự như các tóan tử, thì các tóan tử này có sự kết hợp trái.
Ở đây -2 là đối tượng nhận thông điệp, abs là một thông điệp unary. Kết quả cho biết trị tuyệt đối của đối tượng nhận thông điệp (2).
Tương tự với câu lệnh ‘abcd’ size. Đối tượng nhận thông điệp là một chuỗi ‘abcd’, tên thông điệp là size. Kết quả sẽ cho biết chiều dài chuỗi (4).
Thông điệp binary là loại thông điệp được biểu diễn bằng một hoặc hai ký hiệu đặc biệt (không phải là chữ hoặc số.). Ví dụ như >=, <=. =… Thông điệp này yêu cầu một đối số.
Ví dụ: 3 + 4
Thông điệp keyword là thông điệp yêu cầu một hoặc nhiều đối số, trong đó ứng với một đối số phải là một từ khóa (keyword). Một từ khóa là một danh hiệu (một chuỗi gồm nhiều số và chữ, mởđầu bằng chữ) thêm vào ký tự ‘:’ ở tận cùng.Tên của thông điệp sẽ là sự ghép nối theo thứ tự các keyword trên.
Ví dụ: 2 and: 3
Đối tượng 2 nhận một keyword message có một đối số, và vì vậy có một từ khóa là and:. Tên của thông điệp là and:. Kết quả sẽ thực hiện phép and giữa 2 và 3, và cho kết quả là 2. #(2 3 4) at: 2 put: 3
Đối tượng nhận thông điệp trong trường hợp này một dãy #(2 3 4). Thông điệp có hai đối số là hai số nguyên 2 và 3. Ứng với hai đối số trên là hai từ khóa at: và put:. Như vậy tên của thông điệp sẽ là at:put:
Độưu tiên giữa các thông điệp:
Trong một câu lệnh nếu có nhiều loại thông điệp cùng xuất hiện, các thông điệp được đặt trong cặp dấu (, ) sẽ thực hiện trước, sau đó thứ tự sẽ là unary -> binary->keyword message
Ví dụ:
‘abcd’ size + 2 and: 10 Æ 2 ‘abcd’ size + (2 and: 10) Æ 6