c ++ ข้อมูล encapsulation
ยี่ห้อ C ++ โปรแกรมมีสององค์ประกอบพื้นฐาน:
- งบ Program (รหัส): นี่คือส่วนหนึ่งของโปรแกรมเพื่อดำเนินการที่พวกเขาจะเรียกว่าฟังก์ชั่น
- โปรแกรมข้อมูล: ข้อมูลเป็นข้อมูลของโปรแกรมฟังก์ชั่นโปรแกรมจะได้รับผลกระทบ
Encapsulation เป็นแนวคิดของการเขียนโปรแกรมเชิงวัตถุในข้อมูลฟังก์ชั่นและข้อมูลการจัดการที่ถูกผูกไว้ด้วยกันดังนั้นเพื่อหลีกเลี่ยงการรบกวนจากภายนอกและผิดจึงมั่นใจในความปลอดภัย การห่อหุ้มข้อมูลที่ออกมาจากแนวคิด OOPอื่นที่สำคัญคือในการซ่อนข้อมูล
การห่อหุ้มข้อมูลเป็นกลไกในการทำงานและข้อมูลที่มาพร้อมกับการจัดการข้อมูลที่เป็นนามธรรมเป็นเพียงหนึ่งสัมผัสกับอินเตอร์เฟซผู้ใช้และรายละเอียดการดำเนินกลไกซ่อน
โดยการสร้าง c ++สนับสนุนระดับ encapsulation และข้อมูลที่ซ่อนตัว (ประชาชนป้องกันเอกชน)เรารู้อยู่แล้วว่าชั้นมีสมาชิกส่วนตัว (ส่วนตัว) เพื่อปกป้องสมาชิกของ (ป้องกัน) และสมาชิกของสมาชิกสาธารณะ (สาธารณะ) โดยค่าเริ่มต้นรายการทั้งหมดที่กำหนดไว้ในชั้นเรียนจะเป็นส่วนตัว ตัวอย่างเช่น:
class Box { public: double getVolume(void) { return length * breadth * height; } private: double length; // 长度 double breadth; // 宽度 double height; // 高度 };
ตัวแปรความยาวความกว้างและความสูงจะเป็นส่วนตัว (ส่วนตัว) ซึ่งหมายความว่าพวกเขาสามารถเข้าถึงได้โดยสมาชิกคนอื่น ๆ ของชั้นกล่องเท่านั้นคุณไม่สามารถเข้าถึงชิ้นส่วนอื่น ๆ ของโปรแกรม นี้เป็นวิธีการเพื่อให้บรรลุแพคเกจ
เพื่อที่จะกลายเป็นสมาชิกของคลาสที่สาธารณะ (นั่นคือส่วนอื่น ๆ ของโปรแกรมที่สามารถเข้าถึง)คุณต้องใช้คำหลักที่สาธารณะก่อนที่สมาชิกเหล่านี้มีการประกาศตัวบ่งชี้ทั้งหมดจะถูกกำหนดไว้ในที่สาธารณะที่อยู่เบื้องหลังตัวแปรหรือฟังก์ชั่นสามารถใช้ฟังก์ชั่นอื่น ๆ ทั้งหมดเพื่อเข้าถึงโปรแกรม
ชั้นถูกกำหนดให้เป็นเพื่อนของชั้นอื่นก็จะเปิดเผยรายละเอียดการปฏิบัติซึ่งจะช่วยลดการห่อหุ้ม จะเป็นการดีมากที่สุดเท่าที่เป็นไปได้ซ่อนรายละเอียดการดำเนินงานด้านนอกของแต่ละชั้นเรียน
ตัวอย่างของแพคเกจข้อมูล
โปรแกรม c ++ ชั้นใด ๆ กับสมาชิกของข้อมูลภาครัฐและเอกชนสามารถนำมาใช้เป็นตัวอย่างของการห่อหุ้มและนามธรรมข้อมูล พิจารณาตัวอย่างต่อไปนี้:
#include <iostream> using namespace std; class Adder{ public: // 构造函数 Adder(int i = 0) { total = i; } // 对外的接口 void addNum(int number) { total += number; } // 对外的接口 int getTotal() { return total; }; private: // 对外隐藏的数据 int total; }; int main( ) { Adder a; a.addNum(10); a.addNum(20); a.addNum(30); cout << "Total " << a.getTotal() <<endl; return 0; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
Total 60
เหนือชั้นด้วยกันตัวเลขและผลตอบแทนรวม ผู้ใหญ่addNum และ getTotalคือการติดต่อภายนอกผู้ใช้จำเป็นต้องรู้เพื่อที่จะใช้ชั้นเรียนของตนสมาชิกเอกชนต่างประเทศรวมถูกซ่อนผู้ใช้ไม่จำเป็นต้องเข้าใจ แต่มันเป็นงานระดับปกติที่จำเป็น
กลยุทธ์การออกแบบ
ภายใต้สถานการณ์ปกติเราจะตั้งค่าสถานะสมาชิกระดับเอกชน (Private)เว้นแต่ว่าเราต้องการจริงๆที่จะได้สัมผัสเพื่อให้มั่นใจว่าการห่อหุ้มที่ดี
นี้มักจะนำไปใช้กับข้อมูลสมาชิก แต่มันเป็นอย่างเท่าเทียมกันที่ใช้บังคับกับสมาชิกทุกคนรวมทั้งฟังก์ชั่นเสมือนจริง