แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | การซ่อนข้อมูล | encapsulation |
---|---|---|
ขั้นพื้นฐาน | การซ่อนข้อมูลกังวลเกี่ยวกับความปลอดภัยของข้อมูลพร้อมกับความซับซ้อนในการซ่อน | Encapsulation กังวลเกี่ยวกับการห่อข้อมูลเพื่อซ่อนความซับซ้อนของระบบ |
โฟกัส | การซ่อนข้อมูลมุ่งเน้นไปที่การ จำกัด หรืออนุญาตให้ใช้ข้อมูลภายในแคปซูล | Encapsulation มุ่งเน้นไปที่การห่อหุ้มหรือห่อข้อมูลที่ซับซ้อน |
Access Specifier | ข้อมูลภายใต้การซ่อนข้อมูลนั้นเป็นส่วนตัวและไม่สามารถเข้าถึงได้เสมอ | ข้อมูลภายใต้การห่อหุ้มอาจเป็นข้อมูลส่วนตัวหรือสาธารณะ |
กระบวนการ | การซ่อนข้อมูลเป็นกระบวนการรวมถึงเทคนิค | Encapsulation เป็นกระบวนการย่อยในการซ่อนข้อมูล |
คำจำกัดความของการซ่อนข้อมูล
การซ่อนข้อมูลเป็นแนวคิดในการเขียนโปรแกรมเชิงวัตถุซึ่งยืนยันความปลอดภัยของสมาชิกของคลาสจากการเข้าถึงที่ไม่ได้รับอนุญาต การซ่อนข้อมูลเป็นเทคนิคในการปกป้องสมาชิกข้อมูลจากการถูกจัดการหรือแฮ็คจากแหล่งอื่น ๆ ข้อมูลเป็นเนื้อหาที่ละเอียดอ่อนและมีความผันผวนมากที่สุดของโปรแกรมซึ่งหากมีการจัดการอาจส่งผลให้เกิดการส่งออกที่ไม่ถูกต้องและยังเป็นอันตรายต่อความสมบูรณ์ของข้อมูล การซ่อนข้อมูลถูกควบคุมใน Java ด้วยความช่วยเหลือของตัวดัดแปลงการเข้าถึง (ส่วนตัวสาธารณะและได้รับการป้องกัน) ข้อมูลที่เป็นสาธารณะสามารถเข้าถึงได้จากนอกห้องเรียนดังนั้นหากคุณต้องการซ่อนข้อมูลของคุณหรือ จำกัด ไม่ให้เข้าถึงจากภายนอกให้ประกาศข้อมูล ส่วนตัวของ คุณ ข้อมูลส่วนตัวสามารถเข้าถึงวัตถุของคลาสนั้นได้เท่านั้น
ให้เราเข้าใจข้อมูลที่ซ่อนอยู่ด้วยความช่วยเหลือของตัวอย่าง สมมติว่าคุณประกาศคลาส CheckAccount และคุณมีข้อมูลสมาชิก ยอดคงเหลือ ภายในคลาสนั้น ที่นี่ยอดคงเหลือของบัญชีเป็นข้อมูลที่ละเอียดอ่อน คุณอาจอนุญาตให้แอปพลิเคชันภายนอกตรวจสอบยอดคงเหลือภายในบัญชี แต่คุณจะไม่อนุญาตให้แอปพลิเคชันภายนอกแก้ไขแอตทริบิวต์ของยอดคงเหลือ ดังนั้นการประกาศแอตทริบิวต์ยอดดุลส่วนตัวคุณจะ จำกัด การเข้าถึงยอดคงเหลือจากแอปพลิเคชันภายนอก
การซ่อนข้อมูลยังช่วยลดความซับซ้อนของระบบ การซ่อนข้อมูลสามารถทำได้ผ่านการห่อหุ้มเนื่องจากการห่อหุ้มเป็นกระบวนการย่อยของการซ่อนข้อมูล
ความหมายของการห่อหุ้ม
Encapsulation เป็นการผูกรหัสและข้อมูลเข้าด้วยกันในแคปซูลเพื่อซ่อนความซับซ้อนของคลาส การห่อหุ้มมีส่วนเกี่ยวข้องกับตัวระบุการเข้าถึงน้อยลง (ส่วนตัวเป็นสาธารณะและได้รับการป้องกัน) ในการห่อหุ้มสมาชิกภายในชั้นเรียนสามารถเป็น ส่วนตัวของรัฐหรือได้รับการคุ้มครอง สมาชิกส่วนตัวของคลาสนั้นเข้าถึงได้เฉพาะกับออบเจ็กต์ของคลาสนั้นเท่านั้นและสมาชิกสาธารณะสามารถเข้าถึงออบเจ็กต์ของคลาสได้เช่นเดียวกับที่สามารถเข้าถึงได้จากนอกคลาส การห่อหุ้มช่วยให้ผู้ใช้ปลายทางของระบบเรียนรู้ ว่าจะทำอย่างไร กับระบบแทนวิธีที่ต้องทำ
ให้เราเข้าใจการห่อหุ้มด้วยความช่วยเหลือของตัวอย่างรถยนต์ หากผู้ขับขี่รถยนต์ต้องการเปลี่ยนเกียร์ของรถยนต์สิ่งที่เขาต้องการคือเพียงเปลี่ยนตำแหน่งของเกียร์สำหรับการทำงานของตับและเปลี่ยนเกียร์ของรถยนต์ ผู้ขับขี่ไม่จำเป็นต้องเข้าใจความซับซ้อนของกลไกอะไรที่อยู่เบื้องหลังการเปลี่ยนเกียร์ นี่คือวิธีการห่อหุ้มลดความซับซ้อนของระบบ การห่อหุ้มทำให้ระบบใช้งานง่ายขึ้นโดยผู้ใช้
ความแตกต่างที่สำคัญระหว่างการซ่อนข้อมูลและการห่อหุ้มข้อมูล
- Encapsulation เกี่ยวข้องกับการซ่อน ความซับซ้อน ของโปรแกรม ในทางกลับกันการซ่อนข้อมูลเกี่ยวข้องกับ ความปลอดภัย ของข้อมูลในโปรแกรม
- การห่อหุ้มมุ่งเน้นไปที่การ ห่อ (ห่อหุ้ม) ข้อมูลที่ซับซ้อนเพื่อนำเสนอมุมมองที่ง่ายขึ้นสำหรับผู้ใช้ ในทางกลับกันการซ่อนข้อมูลมุ่งเน้นไปที่การ จำกัด การใช้ข้อมูลโดยมีจุดประสงค์เพื่อรับประกันความปลอดภัยของข้อมูล
- ในการห่อหุ้มข้อมูลสามารถเป็นแบบ สาธารณะหรือแบบส่วนตัว แต่ในการซ่อนข้อมูลข้อมูลต้องเป็นแบบ ส่วนตัว เท่านั้น
- การซ่อนข้อมูลเป็น กระบวนการ เช่นเดียวกับเทคนิคในขณะที่การห่อหุ้มเป็น กระบวนการย่อย ในการซ่อนข้อมูล
สรุป:
ฉันสรุปด้วยการพูดว่าการซ่อนข้อมูลและการห่อหุ้มข้อมูลทั้งสองมีความสำคัญในการใช้งานระบบ ทั้งสองจับมือกันเมื่อการซ่อนข้อมูลมุ่งเน้นไปที่ความปลอดภัยของข้อมูลการห่อหุ้มมุ่งเน้นไปที่การลดความซับซ้อนของระบบเพื่อให้แอปพลิเคชันนั้นใช้งานง่ายขึ้น