Ví dụ trên đưa ra cho ta hai phương án: nên hay không nên sử dụng từ khóa const. Câu trả lời là bạn hãy nên luôn quy định việc sao chép hàm tạo là truyền theo tham chiếu hằng, bởi lẽ các đối tượng khác nhau, không có quyền chỉnh sửa dữ liệu thành viên của nhau, nó chỉ có thể truyền thông điệp cho nhau mà thôi, việc chỉnh sửa dữ liệu thành viên là do bản thân của đối tượng đó. Điều này là sự thể hiện tính đóng gói trong lập trình hướng đối tượng. Tính đóng gói của lập trình hướng đối tượng còn thể hiện ở các mức độ cho phép truy cập đối với dữ liệu và hàm thành viên – tương ứng với từ khoá private, protected và public mà ta đã thảo luận ở trên.
Định nghĩa: tính đóng gói là tính chất không cho phép người dùng hay đối tượng khác thay đổi dữ liệu thành viên của đối tượng nội tại. Chỉ có các hàm thành viên của đối tượng đó mới có quyền thay đổi trạng thái nội tại của nó mà thôi. Các đối tượng khác muốn thay đổi thuộc tính thành viên của đối tượng nội tại, thì chúng cần truyền thông điệp cho đối tượng, và việc quyết định thay đổi hay không vẫn do đối tượng nội tại quyết định.
Tôi có thể lấy ví dụ thực tế để bạn có thể hiểu rõ hơn vấn đề về tính đóng gói: nếu một bệnh nhân cần phải thay nội tạng để có thể sống, thì việc thay thế nội tạng đó cần phải có sự đồng ý của bệnh nhân. Không ai có thể tự động thực hiện điều này (chỉ khi bệnh nhân đã rơi vào tình trạng hôn mê, thì người nhà bệnh nhân mới quyết định thay họ). Nội tạng là các thuộc tính cố hữu của bệnh nhân. Các phương thức thay thế nội tạng của đối tượng bác sĩ không phải là phương thức thành viên của đối tượng bệnh nhân (bệnh nhân không thể tự thay thế nội tạng cho mình và bác sĩ không có quyền thay thế nội tạng cho bệnh nhân nếu không có sự đồng ý của họ). Do đó, họ muốn thực hiện thì cần có phương thức đồng ý của bệnh nhân (phương thức thành viên của đối tượng bệnh nhân). Phương thức đồng ý của bệnh nhân này cũng không thể nào áp dụng cho bệnh nhân kia (bệnh nhân A không thể quyết định thay thế nội tạng cho bệnh nhân B). Như vậy, dữ liệu thành viên của đối tượng nào, thì chỉ có đối tượng đó mới có quyền thay đổi.
Trong một vài giáo trình, tính chất này còn được gọi là tính đóng gói và ẩn dấu thông tin (encapsulation and information hiding).
Compile and Execute Java Online - Try and experience the best cloud computing where you can edit, compile, ... Compile Preview | Execute | Share Code.
Saturday, September 11, 2010
Subscribe to:
Post Comments (Atom)
Popular Posts
-
This tutorial will be written in Java since I'm familiar with it and it's a decent enough language, has many tools and libraries, a ...
-
Announcing hspec - BDD for Haskell I've long been interested in Behavior Driven Design and it's something that is strangely missing ...
-
Pro form comment for blogger [FD's BlOg] - Chúng ta có lẽ khá quen với form comment của blogger , với tính năng hiển thị thời gian comm...
-
Related Posts Widget for Blogger / Blogspot (using CSS + Java) [FD's BlOg] - Tiện ích cho phép hiển thị các bài viết liên quan (có cùng...
-
[FD's BlOg] - Đây là một trong những thủ thuật cơ bản để trang trí cho blog của bạn. Ví dụ như chèn banner flash cho header hoặc cho fo...
-
Widget Recent Posts Using jQuery [FD's BlOg] - Sau một lần lục lọi, tìm kiếm trên mạng được một hiệu ứng từ jQuery , mình đã quyết định...
-
Add emoticons to comment form and Show/Hide tab emoticon [FD's BlOg] - Thủ thuật này có lẽ khá quen thuộc với nhiều người, tuy nhiên một...
-
Đáp ứng yêu cầu của giáo xứ phú giáo , trong nhưng ngày đầu năm này có lẽ anh Dũng cũng bận cho việc ... Va lung tung .. Không có thời gian...
-
Khi khai báo các tham số hình thức bên trong hàm. Nếu các tham số đó được gán giá trị mặc định, thì khi gọi hàm, chúng ta sẽ có một vài các...
-
www.fandung.com [FD's BlOg] - Sau gần 1 năm khởi tạo, và gần nửa năm chính thức hoạt động với nội dung chính là viết về thủ thuật cho b...
No comments:
Post a Comment