Khác biệt giữa bản sửa đổi của “Đóng gói (lập trình máy tính)”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
n Đã lùi lại sửa đổi của 2001:EE0:4D92:C240:A5E6:A871:CBDF:8CE6 (Thảo luận) quay về phiên bản cuối của Mai Ngọc Xuân
Thẻ: Lùi tất cả
Đã cứu 1 nguồn và đánh dấu 0 nguồn là hỏng.) #IABot (v2.0.8
Dòng 1: Dòng 1:
'''Đóng gói''' ([[tiếng Anh]]: ''encapsulation'') trong [[ngôn ngữ lập trình]] là thuật ngữ dùng để chỉ một trong hai khái niệm khác nhau nhưng có liên quan với nhau, đôi khi còn chỉ sự kết hợp của hai khái niệm này.<ref>Michael Lee Scott, ''Programming language pragmatics'', Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 481: "Encapsulation mechanisms enable the programme<sup></sup>r to group data and the subroutines that operate on them together in one place, and to hide irrelevant details from the users of an abstraction."</ref><ref name="Dale">Nell B. Dale, Chip Weems, ''Programming and problem solving with Java'', Edition 2, Jones & Bartlett Publishers, 2007, ISBN 0-7637-3402-0, p. 396</ref>. Khái niệm thứ nhất: cơ chế ngôn ngữ dùng để hạn chế truy cập trực tiếp vào một số thành phần của một [[đối tượng (khoa học máy tính)|đối tượng]].<ref>[[John C. Mitchell]], ''Concepts in programming languages'', Cambridge University Press, 2003, ISBN 0-521-78098-5, p.522</ref><ref name=Pierce>{{cite book|last=Pierce|first=Benjamin|authorlink=Benjamin C. Pierce|title=[[Types and Programming Languages]]|publisher=MIT Press|year=2002|isbn=0-262-16209-1}} p. 266</ref>. Khái niệm thứ hai: cấu trúc ngôn ngữ tạo điều kiện để bó dữ liệu với các [[Phương thức (lập trình máy tính)|phương thức]] (method) hay các hàm (function) khác hoạt động trên dữ liệu đó.<ref>Wm. Paul Rogers, [http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html?page=9 ''Encapsulation is not information hiding''], JavaWorld.com, 05/18/01</ref><ref>Thomas M. Connolly, Carolyn E. Begg, ''Database systems: a practical approach to design, implementation, and management'', Edition 4, Pearson Education, 2005, ISBN 0-321-21025-5, Chapter 25, "Introduction to Object DMBS", section "Object-oriented concepts", p. 814</ref>
'''Đóng gói''' ([[tiếng Anh]]: ''encapsulation'') trong [[ngôn ngữ lập trình]] là thuật ngữ dùng để chỉ một trong hai khái niệm khác nhau nhưng có liên quan với nhau, đôi khi còn chỉ sự kết hợp của hai khái niệm này.<ref>Michael Lee Scott, ''Programming language pragmatics'', Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 481: "Encapsulation mechanisms enable the programme<sup></sup>r to group data and the subroutines that operate on them together in one place, and to hide irrelevant details from the users of an abstraction."</ref><ref name="Dale">Nell B. Dale, Chip Weems, ''Programming and problem solving with Java'', Edition 2, Jones & Bartlett Publishers, 2007, ISBN 0-7637-3402-0, p. 396</ref>. Khái niệm thứ nhất: cơ chế ngôn ngữ dùng để hạn chế truy cập trực tiếp vào một số thành phần của một [[đối tượng (khoa học máy tính)|đối tượng]].<ref>[[John C. Mitchell]], ''Concepts in programming languages'', Cambridge University Press, 2003, ISBN 0-521-78098-5, p.522</ref><ref name=Pierce>{{cite book|last=Pierce|first=Benjamin|authorlink=Benjamin C. Pierce|title=[[Types and Programming Languages]]|publisher=MIT Press|year=2002|isbn=0-262-16209-1}} p. 266</ref>. Khái niệm thứ hai: cấu trúc ngôn ngữ tạo điều kiện để bó dữ liệu với các [[Phương thức (lập trình máy tính)|phương thức]] (method) hay các hàm (function) khác hoạt động trên dữ liệu đó.<ref>Wm. Paul Rogers, [http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html?page=9 ''Encapsulation is not information hiding''] {{Webarchive|url=https://web.archive.org/web/20131029193301/http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html?page=9 |date=2013-10-29 }}, JavaWorld.com, 05/18/01</ref><ref>Thomas M. Connolly, Carolyn E. Begg, ''Database systems: a practical approach to design, implementation, and management'', Edition 4, Pearson Education, 2005, ISBN 0-321-21025-5, Chapter 25, "Introduction to Object DMBS", section "Object-oriented concepts", p. 814</ref>


Một số nhà nghiên cứu ngôn ngữ lập trình và học giả sử dụng chỉ ý nghĩa đầu tiên hay kết hợp với ý nghĩa thứ hai như là một tính năng phân biệt của [[lập trình hướng đối tượng]].
Một số nhà nghiên cứu ngôn ngữ lập trình và học giả sử dụng chỉ ý nghĩa đầu tiên hay kết hợp với ý nghĩa thứ hai như là một tính năng phân biệt của [[lập trình hướng đối tượng]].

Phiên bản lúc 02:47, ngày 17 tháng 4 năm 2021

Đóng gói (tiếng Anh: encapsulation) trong ngôn ngữ lập trình là thuật ngữ dùng để chỉ một trong hai khái niệm khác nhau nhưng có liên quan với nhau, đôi khi còn chỉ sự kết hợp của hai khái niệm này.[1][2]. Khái niệm thứ nhất: cơ chế ngôn ngữ dùng để hạn chế truy cập trực tiếp vào một số thành phần của một đối tượng.[3][4]. Khái niệm thứ hai: cấu trúc ngôn ngữ tạo điều kiện để bó dữ liệu với các phương thức (method) hay các hàm (function) khác hoạt động trên dữ liệu đó.[5][6]

Một số nhà nghiên cứu ngôn ngữ lập trình và học giả sử dụng chỉ ý nghĩa đầu tiên hay kết hợp với ý nghĩa thứ hai như là một tính năng phân biệt của lập trình hướng đối tượng.

Định nghĩa thứ hai được thúc đẩy bởi thực tế nhiều ngôn ngữ lập trình hướng đối tượng giấu thông tin các thành phần nhưng không tự động và có thể ghi đè được; do vậy, việc che giấu thông tin được định nghĩa như là một khái niệm riêng biệt bởi những người thích định nghĩa thứ hai.

Các tính năng của đóng gói được hỗ trợ bằng cách dùng lớp trong hầu hết các ngôn ngữ lập trình hướng đối tượng, mặc dù các lựa chọn thay thế cũng tồn tại.

Cơ chế che giấu thông tin

Đóng gói có thể được dùng để che giấu thành viên dữ liệu và hàm dữ liệu.

Định nghĩa chung

Nhìn chung, đóng gói là một trong bốn nguyên lý cơ bản của OOP (lập trình hướng đối tượng).

Tham khảo

  1. ^ Michael Lee Scott, Programming language pragmatics, Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 481: "Encapsulation mechanisms enable the programmer to group data and the subroutines that operate on them together in one place, and to hide irrelevant details from the users of an abstraction."
  2. ^ Nell B. Dale, Chip Weems, Programming and problem solving with Java, Edition 2, Jones & Bartlett Publishers, 2007, ISBN 0-7637-3402-0, p. 396
  3. ^ John C. Mitchell, Concepts in programming languages, Cambridge University Press, 2003, ISBN 0-521-78098-5, p.522
  4. ^ Pierce, Benjamin (2002). Types and Programming Languages. MIT Press. ISBN 0-262-16209-1. p. 266
  5. ^ Wm. Paul Rogers, Encapsulation is not information hiding Lưu trữ 2013-10-29 tại Wayback Machine, JavaWorld.com, 05/18/01
  6. ^ Thomas M. Connolly, Carolyn E. Begg, Database systems: a practical approach to design, implementation, and management, Edition 4, Pearson Education, 2005, ISBN 0-321-21025-5, Chapter 25, "Introduction to Object DMBS", section "Object-oriented concepts", p. 814

Liên kết ngoài