البحث في الموقع

التغليف هو ماذا؟ التغليف في البرمجة

التغليف هو واحد من الثلاثة الرئيسيةميزات البرمجة الشيئية (OOP). الآخران هما تعدد الأشكال والميراث. ويشكلان معاً قاعدة منظمة التحرير الفلسطينية ، التي تحدد النطاق الكامل لإمكانيات كتابة البرامج بلغات مختلفة ، باستخدام هذه المبادئ الثلاثة. في المقابل ، يجب على اللغات الموجهة للكائنات أن تتبعها بوضوح.

التغليف هو

أساسيات OOP

البرمجة الموجهة للكائنات تقف على ثلاث ركائز لكونها:

  • تعدد الأشكال ، ردا على سؤال كيف تعامل لغة برمجة معينة الكائنات التي لها علاقة مع بعضها البعض ، بطريقة مماثلة.
  • الوراثة ، والتي تعطي إجابة ، وكيف يحدث التحفيز من استخدام التعليمات البرمجية بشكل متكرر.
  • التغليف ، وهو الجواب على السؤال عن كيفية إخفاء التنفيذ ، وبالتالي يتم الحفاظ على سلامة البيانات.

مصطلحات

التغليف (البرمجة) هواستخدام معدّلات الوصول لإخفاء أجزاء من رمز البرنامج من المستخدم النهائي. تحته ، يعني بدوره المطور أو الكائن الوراثي.

مفاهيم التغليف

جوهر مفهوم "التغليف"

تعريف تعريف أن تحت التغليففإنه يعني إخفاء كل أو جزء من رمز البرنامج. جوهر مفهوم "التغليف" هو التلاعب في معدّلات الوصول. وهذا يعني أن المطور نفسه يقرر أي خصائص وطرق وطبقات ستكون مفتوحة لفئة العميل ، وأيها تكون مخفية.

معدّلات الوصول

برمجة التغليف
هناك معدّلات الوصول هذه التي تستطيع ، من بين أمور أخرى ، معالجة التغليف (برمجة Java):

  • عامة (عامة - عامة ، مفتوحة ، وصول) - وصول مشترك للأشياء والفئات الحالية ، وللعالم الخارجي ؛
  • خاص ("خاص" - وصول خاص وخفي مخفي) - وصول خاص ، جوهره معاكس تمامًا للسابق. يوفر الوصول فقط من الفصل الحالي ؛
  • محمية (محمية ، شبه مخفية ، وصول) - الوصول إلى الطبقة الحالية ومشتقاتها ؛
  • بشكل افتراضي ، يعني معد تعديل الوصول أن الحقل / الطريقة مرئية لحزمة الفئة الحالية بأكملها.

في 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>
  • التقييم: