التغليف هو واحد من الثلاثة الرئيسيةميزات البرمجة الشيئية (OOP). الآخران هما تعدد الأشكال والميراث. ويشكلان معاً قاعدة منظمة التحرير الفلسطينية ، التي تحدد النطاق الكامل لإمكانيات كتابة البرامج بلغات مختلفة ، باستخدام هذه المبادئ الثلاثة. في المقابل ، يجب على اللغات الموجهة للكائنات أن تتبعها بوضوح.
البرمجة الموجهة للكائنات تقف على ثلاث ركائز لكونها:
التغليف (البرمجة) هواستخدام معدّلات الوصول لإخفاء أجزاء من رمز البرنامج من المستخدم النهائي. تحته ، يعني بدوره المطور أو الكائن الوراثي.
تعريف تعريف أن تحت التغليففإنه يعني إخفاء كل أو جزء من رمز البرنامج. جوهر مفهوم "التغليف" هو التلاعب في معدّلات الوصول. وهذا يعني أن المطور نفسه يقرر أي خصائص وطرق وطبقات ستكون مفتوحة لفئة العميل ، وأيها تكون مخفية.
في C # ("C Sharp") ، بالإضافة إلى المحدد (باستثناء الأخير) ، لا يزال هناك مثل هذه المعدّلات:
تسمح لك آلية التغليف باستبعاد التأثير الخارجي على رمز البرنامج والاستخدام غير الصحيح للبيانات المضمنة فيه. يتم ذلك عن طريق الجمع بين الكود والبيانات في واحد.
تكامل تنفيذ وحدة البرامج وتسمى البيانات المضمنة في التعليمات البرمجية في البرمجة كائن. يكمن جوهر ارتباطها بالتغليف في حقيقة أن هذه التقنية هي التي تسمح بالحفاظ على سلامة الآلية المعنية وضمانها.
التغليف هو طريقة لتبسيط عملية الترميز. تبقى العديد من أسطر التعليمة البرمجية "خلف الكواليس" ، وفي العمل الطبقي الرئيسي يتم استخدام مثيلات الكائنات.
التغليف هو أيضا آلية ذلكيدرك فكرة حماية البيانات. يستند منطق برنامج البرمجة الشيئية إلى حقيقة أن معظم البيانات سيتم إخفاؤها بواسطة معدِّل الوصول الخاص (الخاص ، الخاص) أو المحمي (المحمي). العالم الخارجي ، يمكن للعميل عن طريق الخطأ أو عن قصد لا ضرر في تنفيذ وحدة البرامج. لأنه في الواقع من السهل جدا القيام بذلك حتى عن قصد ، يعتبر التغليف مبدأ جيد جدا.
الطبقة ، باعتبارها الوحدة الأساسية للتغليف ،ويصف البيانات ويحتوي على التعليمات البرمجية التي هي قادرة على العمل على هذه البيانات. بل هو أيضا الأساس لبناء كائن. هذا الأخير، بدوره، قدم كمثال.
التغليف (البرمجة) مثال:
* ملاحظة:
الوصف هو وصف للطريقة / الخاصية / المتغير ، أي التعليق على ما يحدث بالفعل في البرنامج. ثبت مع فتح / إغلاق العلامات
باستخدام النظام
مساحة الاسم OOPLibrary.Auto
{
///
/// يهدف هذا الفصل إلى وصف خصائص وإجراءات السيارة
///
الطبقة العامة السيارات
{
///
/// متغير تم إنشاؤه للكتابة عليه ، كم عمر السيارة ، نظرًا لأن التدخل الخارجي في هذه الخاصية يعتبره المطور غير ضروري
/// تم تمييزه بخاصية التعديل الخاصة ، وهي الوصول الخاص والخاص (انظر الوصف أعلاه).
///
int الخاص _age؛
///
//// منطقي متغير (فقط قيمتان ممكنتان - نعم أو لا) تصف ما إذا كانت السيارة تتحرك حاليا
/// يجب ألا يكون مفتوحًا أيضًا للمستخدم النهائي ، أيا كان. لذلك ، يتم تعيين هذا المتغير على "معدّل الوصول الخاص" privat
///
خاصة bool _ isMoving؛
///
/// يجب أن يحتوي متغير السلسلة هذا على معلومات حول لون السيارة. يمكن أن يكون عرضة للتغييرات من التأثيرات الخارجية
/// لأنه تم اختيار معدّل الوصول العام "عام" للون.
///
سلسلة عامة
///
/// في هذه الحالة بالذات ، نفترض أنه يمكن تغيير اسم السيارة أيضًا
/// يعيّن معدِّلًا عامًا (وصول عام للجميع ، بغض النظر عن الصف أو التجميع).
///
اسم السلسلة العامة
///
/// تم فتح مُنشئ الفئة ، وجميع الخصائص التي تم التعبير عنها بواسطة المتغيرات والمحددة سابقًا ، احصل على قيمها
///
السيارات العامة ()
{
_age = 5 ؛
_isMoving = false ؛
اللون = "أرجواني" ؛
Name = "Skoda Octavia"؛
}
///
/// تطبق الطريقة قيمة الإرجاع لعصر السيارات. لماذا هو ضروري؟
/// لا يسمح معد الوصول الخاص للعميل بتغييره.
///
/// يرجع عمر السيارة.
السلسلة العامة GetAge ()
{
return "في الوقت الحالي ، الجهاز المحدد هو" + _age + "سنوات."؛
}
///
/// إذا لم تتحرك السيارة ، فهذه الطريقةيدرك بداية الحركة. يتم إجراء فحص للمتغير الذي يوضح حالة السيارة (سواء كانت مسافرة أم لا) ، واعتمادًا على النتائج ، يتم تنفيذ الإجراء المطابق / يتم عرض رسالة مقابلة.
///
الفراغ العام ابدأ ()
{
إذا (_isMoving)
{
Console.WriteLine ("بدأت الحركة بالفعل") ؛
}
آخر
{
_isMoving = صحيح ؛
Console.WriteLine ("للبدء ، والانتباه .. إلى الأمام! دعونا نذهب!") ؛
}
}
///
/// إذا بدأت الحركة ، فإن هذه الطريقة توقفها. نفس منطق البرمجة كما في الحالة السابقة.
///
الفراغ العام Stop ()
{
إذا (_isMoving)
{
_isMoving = false ؛
Console.WriteLine ("Stop، machine")؛
}
آخر
{
Console.WriteLine ("خطأ: السيارة موجودة بالفعل ، لا تتحرك") ؛
}
}
///
/// اتجه يسارًا إذا كانت هناك حركة مركبة
///
الفراغ العام MoveLeft ()
{
إذا (_isMoving)
{
Console.WriteLine ("Turned left")؛
}
آخر
{
Console.WriteLine ("Error: The car is stationary، the rotation function is available now")؛
}
}
///
/// طريقة مماثلة مع الدوران إلى اليمين
///
الفراغ العام MoveRight ()
{
إذا (_isMoving)
{
Console.WriteLine ("Turn right الناجحة")؛
}
آخر
{
Console.WriteLine ("خطأ: لم تتحرك السيارة بعد." إن الانتقال إلى اليمين هو إجراء مستحيل حاليًا. ")؛
}
}
}
}
</ p>