คอมพิวเตอร์, การเขียนโปรแกรม
Encapsulation - นี่คืออะไร? Encapsulation ในการเขียนโปรแกรม
Encapsulation - นี้เป็นหนึ่งในสามของคุณสมบัติหลักของ การเขียนโปรแกรมเชิงวัตถุ (OOP) อีกสอง - ความแตกต่างและเป็นมรดก พวกเขาช่วยกันทำขึ้นในกรอบ PLO ซึ่งวางลงช่วงของคุณสมบัติของการเขียนโปรแกรมในภาษาที่แตกต่างกันโดยใช้หลักการทั้งสาม ภาษาเชิงวัตถุในทางกลับกันมีหน้าที่ที่จะปฏิบัติตามอย่างเคร่งครัดพวกเขา
ข้อมูลพื้นฐานเกี่ยวกับ OOP
เขียนโปรแกรมเชิงวัตถุในสามเสาหลักของการสร้าง:
- polymorphism ตอบคำถามของวิธีการโดยเฉพาะอย่างยิ่งข้อเสนอการเขียนโปรแกรมภาษาที่มีวัตถุที่มีความสัมพันธ์กับแต่ละอื่น ๆ ในลักษณะที่คล้ายกัน
- มรดกให้คำตอบเป็นวิธีการกระตุ้นการใช้งานของรหัสนำมาใช้ใหม่ได้
- Encapsulation ซึ่งเป็นคำตอบสำหรับคำถามของการซ่อนการดำเนินการที่เกิดขึ้นและทำให้ความสมบูรณ์ของข้อมูล
คำศัพท์
Encapsulation (การเขียนโปรแกรม) - คือการใช้การปรับเปลี่ยนการเข้าถึงเพื่อปกปิดชิ้นส่วนของรหัสจากผู้ใช้ ใต้มันในที่สุดก็หมายความว่านักพัฒนาซอฟต์แวร์หรือมรดกทางเว็บไซต์
สาระสำคัญของแนวคิดของ "encapsulation ที่"
คำนิยามที่ระบุว่าโดยการห่อหุ้มความหมายที่ซ่อนตัวอยู่ทั้งหมดหรือบางส่วนของรหัสโปรแกรม สาระสำคัญของแนวคิดของ "encapsulation" คือการจัดการกับการปรับเปลี่ยนการเข้าถึง ซึ่งหมายความว่านักพัฒนาสามารถตัดสินใจว่าคุณสมบัติวิธีการและชั้นเรียนจะเปิดให้ลูกค้าชั้นเรียนและสิ่งที่ - ถูกซ่อนไว้
การปรับเปลี่ยนการเข้าถึง
- สาธารณะ ( "สาธารณะ" - ประชาชนเข้าถึงเปิด) - หุ้นทั้งการเรียนในปัจจุบันและวัตถุและกับโลกภายนอก;
- ส่วนตัว ( "prayvat" - ส่วนตัวส่วนตัวซ่อนเข้าถึง) - ปิดการเข้าถึงสาระสำคัญของการที่จะสมบูรณ์ตรงข้ามของหนึ่งก่อนหน้านี้ จะให้การเข้าถึงเฉพาะจากระดับปัจจุบัน
- การป้องกัน ( "protekted" - การป้องกันการเข้าถึงครึ่งซ่อนไว้) - การเข้าถึงชั้นในปัจจุบันและอนุพันธ์;
- เริ่มต้น - ปรับปรุงการเข้าถึงที่ไม่ระบุหมายความว่าข้อมูล / วิธีการสามารถมองเห็นได้ทุกชั้นเรียนปัจจุบันในแพคเกจ
ในภาษา C # ( "ศรีชาร์ป") นอกเหนือไปจากข้างต้น (ยกเว้นที่ผ่านมา) ยังคงมีการปรับเปลี่ยน:
- ภายใน ( "ภายใน" - การเข้าถึงภายใน) - การเข้าถึงในการชุมนุมในปัจจุบันการเข้าถึงในร่มกรณีอื่น ๆ ;
- ภายในได้รับการป้องกัน ( "ภายใน protekted" - Protected Access ภายใน) - สหภาพของทั้งสองการปรับเปลี่ยนในหนึ่งในคุณสมบัติที่ประจักษ์ของทั้งสองของพวกเขา
บทบาทของการห่อหุ้ม
กลไกการห่อหุ้มจะช่วยลดอิทธิพลภายนอกในรหัสและผิดของข้อมูลที่ฝังตัวอยู่ในนั้น นี้สามารถทำได้โดยการรวมรหัสและข้อมูลที่เป็นหนึ่ง
วัตถุและห่อหุ้ม
รวมการดำเนินงานของโมดูลซอฟต์แวร์และข้อมูลที่ฝังอยู่ในรหัสที่โปรแกรมที่เรียกว่าวัตถุ สาระสำคัญของการเชื่อมต่อกับการห่อหุ้มคือว่าวิธีดังกล่าวจะช่วยให้การรักษาและตรวจสอบความสมบูรณ์ของการดำเนินงานของกลไกที่
ข้อได้เปรียบของการห่อหุ้ม
Encapsulation - วิธีที่จะลดความซับซ้อนของการเข้ารหัสที่ หลายเส้นของรหัสที่อยู่ "เบื้องหลัง" และในการทำงานระดับหลักเป็นไปเพื่อคัดค้านกรณี
ความคิดของการป้องกันข้อมูล
Encapsulation - มันก็ยังเป็นกลไกที่ตระหนักถึงความคิดของการป้องกันข้อมูลที่ การเขียนโปรแกรมเชิงวัตถุตรรกะโปรแกรมที่ถูกสร้างขึ้นบนพื้นฐานของสิ่งที่มากที่สุดของข้อมูลที่จะปรับปรุงการเข้าถึงที่ซ่อนอยู่เอกชน (เอกชนภาคเอกชน) หรือการป้องกัน (ป้องกัน) โลกภายนอกลูกค้าบังเอิญหรือจงใจจะไม่เกิดความเสียหายการดำเนินงานของโมดูลซอฟต์แวร์ เพราะในความเป็นจริงก็จะทำให้มันง่ายมากที่จะไม่ได้เกี่ยวกับวัตถุประสงค์การห่อหุ้ม - นี้เป็นหลักการที่ดีมาก
หน่วย encapsulation
ชั้นเป็นหน่วยพื้นฐานของการห่อหุ้มและอธิบายข้อมูลที่ประกอบด้วยรหัสซึ่งสามารถที่จะดำเนินการเกี่ยวกับข้อมูลเหล่านี้ นอกจากนี้เขายังเป็นพื้นฐานสำหรับการก่อสร้างของวัตถุ หลังในที่สุดก็จะนำเสนอเป็นตัวอย่าง
- สมาชิก - นี้เป็นรหัสและข้อมูลที่รวมอยู่ในชั้นเรียน;
- เขตหรือตัวแปรเช่น - ข้อมูลที่เรียกว่าที่กำหนดชั้น;
- ฟังก์ชั่นสมาชิก - พวกเขามีรหัสของตัวเอง ฟังก์ชั่นสมาชิก - ชื่อสามัญ เป็นกรณีพิเศษ - วิธีการ
ตัวอย่างที่เฉพาะเจาะจง encapsulation
Encapsulation (การเขียนโปรแกรม) ตัวอย่างเช่น:
* หมายเหตุ:
คำอธิบาย - รายละเอียดของวิธีการ / คุณสมบัติ / ตัวแปรคือการแสดงความคิดเห็นเกี่ยวกับสิ่งที่เกิดขึ้นจริงในโปรแกรม มันจะแสดงให้เห็นโดยใช้วิธีการเปิด / ปิดแท็ก
การใช้ระบบ
OOPLibrary.Auto namespace
{
///
/// ระดับนี้มีวัตถุประสงค์เพื่ออธิบายการกระทำของรถ
///
รถยนต์คลาสที่สาธารณะ
{
///
/// ตัวแปรที่สร้างขึ้นเพื่อที่จะเขียนในนั้นกี่ปีรถยนต์ตั้งแต่การรบกวนจากภายนอกในการพัฒนาอสังหาริมทรัพย์จะพิจารณาฟุ่มเฟือย
/// ปรับปรุงมีการทำเครื่องหมายส่วนตัวนั่นคือการปิดการเข้าถึงส่วนตัว (ดู. คำอธิบายข้างต้น)
///
_age int เอกชน
///
/// บูลีน (เพียงสองค่าที่เป็นไป - ใช่หรือไม่) ซึ่งอธิบายว่ารถที่มีการเคลื่อนไหวในขณะนี้
/// นอกจากนี้ยังควรจะเปิดให้ผู้ใช้ที่ใครก็ตามที่เขาเป็น ดังนั้นตัวแปรนี้มีการกำหนดปรับปรุงการเข้าถึงเอกชน "prayvat"
///
_isMoving บูลส่วนตัว
///
/// ตัวแปรสตริงนี้ควรมีข้อมูลเกี่ยวกับสีของรถ มันสามารถเปลี่ยนแปลงได้โดยอิทธิพลภายนอก
/// เพราะการเข้าถึงเปิดเลือกปรับแต่งสี "สาธารณะ"
///
สาธารณะสีสตริง;
///
/// ในกรณีนี้โดยเฉพาะอย่างยิ่งเราคิดว่าชื่อของรถก็สามารถเปลี่ยนแปลงได้
/// มอบหมายปรับปรุงของประชาชน (เปิดสำหรับทุกคนโดยไม่คำนึงถึงชั้นเรียนหรือประกอบ)
///
ชื่อสตริงสาธารณะ
///
/// เปิดตัวสร้างชั้นเรียนและคุณสมบัติทั้งหมดของตัวแปรแสดงและการตั้งค่าเล็กน้อยก่อนหน้านี้ได้รับค่าของพวกเขา
///
รถยนต์สาธารณะ ()
{
_age = 5;
_isMoving = false;
color = "สีม่วง";
name = "Skoda Octavia";
}
///
/// วิธีการตระหนักถึงมูลค่าการกลับมาของอายุอัตโนมัติ นี่คือเหตุผลที่จำเป็น?
/// ปรับปรุงการเข้าถึงส่วนตัวไม่ได้ทำให้มันเป็นไปได้สำหรับการเปลี่ยนแปลงของลูกค้า
///
/// ส่งกลับอายุของรถ
สตริงสาธารณะ GetAge ()
{
กลับ "ในขณะที่เครื่องที่เลือก" + _age + "ปี.";
}
///
/// ถ้ารถไม่ได้เคลื่อนย้ายวิธีการนี้ดำเนินการเริ่มต้นของการเคลื่อนไหว ตรวจสอบ oboznalsya ตัวแปรสภาพของยานพาหนะ (การเดินทางหรือไม่) และขึ้นอยู่กับผลการดำเนินการที่เหมาะสม / ข้อความจะปรากฏ
///
โมฆะสาธารณะเริ่มต้น ()
{
ถ้า (_isMoving)
{
Console.WriteLine ( "การเคลื่อนไหวได้รับการเริ่มต้นแล้ว");
}
อื่น
{
_isMoving = true;
Console.WriteLine ( "Ready, Set .. ไปออก!");
}
}
///
/// หากการเคลื่อนไหวได้ริเริ่มวิธีนี้เขาหยุด ตรรกะโปรแกรมเช่นเดียวกับในกรณีก่อนหน้านี้ถือว่า
///
โมฆะสาธารณะหยุด ()
{
ถ้า (_isMoving)
{
_isMoving = false;
Console.WriteLine ( "เครื่องหยุด");
}
อื่น
{
Console.WriteLine ( "รถข้อผิดพลาดและเพื่อยืนยังไม่ย้าย");
}
}
///
/// ดำเนินเลี้ยวซ้ายถ้ามียานพาหนะ
///
โมฆะสาธารณะ MoveLeft ()
{
ถ้า (_isMoving)
{
Console.WriteLine ( "เลี้ยวซ้ายจะทำ");
}
อื่น
{
Console.WriteLine ( "รถข้อผิดพลาดเป็นคุณลักษณะหมุนนิ่งอยู่ในขณะนี้ไม่สามารถใช้ได้.");
}
}
///
/// วิธีการคล้ายกับการเปิดทางด้านขวา
///
โมฆะสาธารณะ MoveRight ()
{
ถ้า (_isMoving)
{
Console.WriteLine ( "เลี้ยวขวาได้รับการดำเนินการเรียบร้อยแล้ว");
}
อื่น
{
Console.WriteLine ( "ข้อผิดพลาดในรถยังไม่ได้ย้ายจากจุดเลี้ยวขวามันเป็นในขณะนี้การดำเนินการเป็นไปไม่ได้ที่จะดำเนินการ ..");
}
}
}
}
Similar articles
Trending Now