Tôi đã đọc qua phần giới thiệu của Oracle về các khái niệm OOP và tôi đã xem qua mô tả này:
Các đối tượng trong thế giới thực có chung hai đặc điểm: Tất cả chúng đều có trạng thái và hành vi. Chó có trạng thái (tên, màu sắc, giống, đói) và hành vi (sủa, tìm nạp, vẫy đuôi). Các đối tượng phần mềm tương tự về mặt khái niệm với các đối tượng trong thế giới thực: chúng cũng bao gồm trạng thái và hành vi liên quan.
Vấn đề của tôi với đoạn văn đó là khi mô tả trạng thái trộn lẫn các thuộc tính của nó ở đó. Ví dụ, tên và màu sắc của một con chó là thuộc tính của nó, trong khi nó đang đói hoặc thursty là trạng thái của nó.
Vì vậy, theo tôi, chính xác hơn là chia các đặc điểm của các đối tượng thành ba phần: thuộc tính, trạng thái và hành vi .
Chắc chắn, khi dịch ngôn ngữ này sang ngôn ngữ lập trình tôi có thể thấy rằng phân vùng ba lần trở thành một phân chia hai lần, bởi vì cả hai thuộc tính và trạng thái sẽ được lưu trữ vào các trường / biến, trong khi các hành vi sẽ được lưu trữ vào các phương thức / hàm.
Nhưng về mặt khái niệm, nó có ý nghĩa hơn để có 3 điều riêng biệt.
Đây là một ví dụ khác: xem xét một đèn. Nói rằng cả kích thước đèn và dù nó có bật hay không đều là trạng thái theo quan điểm của tôi. Kích thước đèn là một thuộc tính, không phải là trạng thái, trong khi nó được bật hoặc tắt là trạng thái.
Hay tôi đã bỏ lỡ điều gì?