นี่คือคำจำกัดความสั้น ๆ ของการห่อหุ้มและนามธรรม
abstraction:
กระบวนการของ abstraction ใน Java นั้นใช้เพื่อซ่อนรายละเอียดบางอย่างและแสดงเฉพาะคุณสมบัติที่สำคัญของวัตถุ กล่าวอีกนัยหนึ่งมันเกี่ยวข้องกับมุมมองภายนอกของวัตถุ (อินเทอร์เฟซ) ตัวอย่างที่ดีที่ฉันเห็นในเว็บไซต์นี้คือส่วนต่อประสาน
encapsulation:
โดยพื้นฐานแล้วเกี่ยวกับการซ่อนสถานะของวัตถุด้วยความช่วยเหลือของตัวดัดแปลงเช่นส่วนตัวสาธารณะการป้องกัน ฯลฯ เราเปิดเผยสถานะผ่านวิธีสาธารณะเฉพาะเมื่อจำเป็นเท่านั้น
สิ่งที่เราประสบความสำเร็จกับการปรับเปลี่ยนเช่นprivate
,public
ยังซ่อนรายละเอียดที่ไม่จำเป็นออกจากโลกด้านซึ่งเป็นอะไร แต่ยังแนวคิดนามธรรม
ดังนั้นจากคำอธิบายข้างต้นดูเหมือนว่าการห่อหุ้มเป็นส่วนหนึ่งของสิ่งที่เป็นนามธรรมหรือเราสามารถพูดได้ว่ามันเป็นส่วนหนึ่งของสิ่งที่เป็นนามธรรม แต่ทำไมคำว่า encapsulation จึงถูกคิดค้นขึ้นเมื่อเราสามารถจัดการกับนามธรรมได้เท่านั้น? ฉันแน่ใจว่าควรมีความแตกต่างที่สำคัญซึ่งแยกพวกเขา แต่วัสดุส่วนใหญ่ในเน็ตกล่าวว่าเกือบเหมือนกันสำหรับพวกเขาทั้งสอง
แม้ว่าคำถามนี้ได้รับการหยิบยกขึ้นมาในฟอรัมนี้ก่อนหน้านี้เช่นกัน แต่ฉันกำลังโพสต์มันอีกครั้งด้วยความสงสัยที่เฉพาะเจาะจง บางคำตอบยังกล่าวอีกว่าสิ่งที่เป็นนามธรรมเป็นแนวคิดและการห่อหุ้มคือการนำไปปฏิบัติ แต่ฉันไม่ซื้อสิ่งนี้ - ถ้าเป็นจริงฉันก็สามารถคิดได้ว่าแนวคิดที่แตกต่างกันสองอย่างนี้มีไว้เพื่อสร้างความสับสนให้เรา
อัปเดต: -หลังจาก 5 ปีที่ฉันได้คำตอบของตัวเองซึ่งเป็นส่วนสำคัญตามคำตอบในโพสต์นี้และด้านล่าง
private
public
พวกเขาให้ข้อมูล / การซ่อนข้อมูลที่เราทำเท่านั้นเนื่องจากเป็นการปฏิบัติที่ดีในการปกป้องข้อมูลของอินสแตนซ์
An 'abstraction' (noun) is a concept that acts as a super-categorical noun for all subordinate concepts, and connects any related concepts as a group, field, or category.