الفرق بين الفئة والمنشأة الفرق بين

Anonim

قبل أن نفهم الفرق بين الفئة والبنية، يجب أن نعرف بعض المفاهيم الأساسية المرتبطة بها. وبدون فهم للمفاهيم، يصعب فهم الفروق بين الاثنين.

ما هي الفئة والكائن:

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

بناء فئة

مخزن الفئة {

بوبليك سترينغ ثينغس؛

تصميم سلسلة العامة؛

}

بناء الجملة من كائن

مخزن البقالة = نيو ستور ()؛

مخزن القرطاسية = نيو ستور ()؛

ما هو الهيكل؟

يتضمن الهيكل فقط البيانات، وبالتالي فإنه من المفيد في تأطير متطلبات البيانات الفردية من خلال الكائنات الهيكل. وخلافا للطبقة، فإنه يفتقر إلى وظائف. هنا هو بناء الجملة:

ستروكت grocery_entrance {

شار input_name [50]؛

إنت entry_size؛

} grocery_entrance؛

جميع المتاجر يمكن استخدام "مدخل" الهيكل مع الأسماء والأحجام الفردية.

ما هو الميراث؟

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

والآن بعد أن كنا على دراية بالمفاهيم الأساسية، يمكننا أن ندخل الفرق الفعلي بين الفئة والهياكل.

كيف تختلف؟

  • إعادة الاستخدام: كما تشكل الفصول الإطار الأساسي، يمكن إعادة استخدامها؛ لكن الهياكل هي عناصر فردية ذات خصائص محددة، لذا لا يمكن إعادة استخدامها. على سبيل المثال، متجر البقالة فئة يمكن استخدامها لأي نوع من متجر البقالة، ولكن grocery_entrance هيكل محددة لذلك وحده وليس هناك نقطة في إعادة استخدامه في فئات أخرى.
  • الرؤية: جميع الوظائف في فئة متاحة للجمهور لأهدافها.على سبيل المثال، لدينا وظيفة تسمى 'الأشياء' تحت فئة 'مخزن'. وظيفة "الأشياء" مرئية لجميع كائناتها، مثل "متجر البقالة، مخزن القرطاسية"، الخ هذا الرؤية غير ممكن مع الهياكل كما تقتصر بيانات الهيكل لنفسها وغير مرئية لهياكل أخرى. لجعل الأمور واضحة، يمكننا القول أن بيانات 'grocery_entrance' ليست مرئية للجميع لجميع المتاجر الأخرى.
  • تمرير من قبل المرجعية وتمرير من قبل القيمة: تمرير من قبل المرجع هو إرسال فقط موقع الذاكرة وليس البيانات الفعلية إلى وظائف. وهذا يعني أنه كلما تغيرت القيمة، ينعكس التغيير في الوظائف المناظرة. تمرير القيمة، بدوره، هو مجرد إرسال قيمة إلى وظيفة. في هذه الحالة، لن ينعكس تغيير في القيمة بعد إرسالها في الدالة. استخدامات الفئة تمرير بواسطة مرجع، و يستخدم بنية قيمة تمرير.
  • الميراث: يمكن أن تكون الطبقات مورثة لتشكيل الطبقات الفرعية، ولكن الهياكل لا يمكن أن تستخدم الميراث. على سبيل المثال، مخزن فئة يعطي وظائفه إلى فئة فرعية "محل بقالة". ولكن الهيكل 'grocery_entrance' لا يمكن أن ترث أي وظيفة. يمكننا أن نقول أنه لا يوجد مفهوم مثل شبه الهيكل هنا.
  • الرؤية الافتراضية: يتم الاحتفاظ بكافة أعضاء الفئة ككيانات خاصة بشكل افتراضي، في حين يتم الاحتفاظ بأعضاء الهيكل ككيانات عامة بشكل افتراضي.
  • حجم فئة فارغة وهيكل: فئة يستخدم حجم 1 بايت حتى عندما يكون فارغا، في حين أن بنية أبدا يستخدم أي ذاكرة عندما تكون فارغة. وهذا يعني أننا يمكن أن نقول أن حجم بنية فارغة يساوي 0 بايت.
  • جمع القمامة: جمع القمامة هو ممكن مع فئات، لأنها تستخدم تمرير بالرجوع اليها. لذلك، فمن الأسهل للقيام تنظيف في مكان واحد حيث يتم تخزين البيانات. من ناحية أخرى، جمع القمامة غير ممكن مع الهيكل، كما أنه يستخدم تمرير حسب القيمة والبيانات متناثرة في مواقع مختلفة.
  • إدارة الذاكرة: لأن الفئة يسمح مجموعات القمامة، وإدارة الذاكرة فعالة أيضا. ومع ذلك، فإنه ليس ذلك فعال مع الهياكل.
  • المنشئ: يقوم المنشئ عادة بتهيئة الطبقة مع قيم محددة معينة. يمكننا أن ننظر في الأمر مثل شيء تم تهيئته مع القيم. إذا كان يجب إنشاء فئة جديدة، يتم استدعاء منشئ لتخصيص الذاكرة لهذا المثيل. يمكننا حتى تمرير القيم كما الحجج أثناء استدعاء منشئ. دعونا نأتي إلى مناقشتنا الفعلية الآن. وتسمح الفصول بإنشاء منشئات من جميع الأنواع، مثل الوسيطات أو بدونها، في حين تسمح الأنظمة فقط للمنشئات ذات الحجج، i. ه. البنى المعلمة.
  • ديستروكتور: ويسمى ديستروكتور كلما كنا بحاجة إلى حذف مثيل من فئة. و ديستروكتور، بدوره، حذف تلك الحالة وتحرير الذاكرة. يمكن للفئة استخدام ديستروكتور، في حين لا يمكن للهيكل.
  • متغيرات الأعضاء التهيئة: في الفصول الدراسية، يمكننا تهيئة متغيرات الأعضاء مباشرة؛ مثل هذا التهيئة غير ممكن مع الهياكل.
  • إنشاء الكائن: بناء الجملة العام لإنشاء الكائنات في الفئات هو:

تجريبي أوبج = تجريبي جديد ()؛

وهذا يعني أنه يجب علينا استخدام الكلمة الرئيسية "جديد" أثناء إنشاء كائنات من فئة.هذا غير مطلوب عند إنشاء كائنات من الهياكل. مجرد إلقاء نظرة على بناء الجملة:

تجريبي أوبج؛

يعمل تماما حتى من دون الكلمة الرئيسية 'جديد'.

متى تستخدم الفئة ومتى تستخدم الهيكل؟

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

كيفية تحويل بنية إلى فئة ونائب فيرسا؟

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

دعونا نلقي نظرة على الاختلافات المذكورة أعلاه في شكل جدول.

S. لا المفاهيم الخلافات
الفئة الهيكل
1 إعادة الاستخدام قابلة لإعادة الاستخدام بالكامل غير قابلة للاستخدام
2 < جميع وظائف الفئة مرئية لأهدافها بيانات كائن من بنية غير مرئية لأشياء أخرى لنفس الهيكل 3 تمرير بواسطة المرجع وتمرير حسب القيمة > يستخدم تمرير حسب المرجع
يستخدم تمرير حسب القيمة 4 الميراث <يمكن أن تكون موروثة وظائف فئة من الفئات الفرعية. يسمح بالميراث لا يسمح أبدا بالميراث
5 الرؤية الافتراضية جميع أعضاء الفئة هم خاصون بشكل افتراضي جميع أعضاء الهيكل عمومي بشكل افتراضي
6 حجم الفراغ الفارغ حجم الفراغ الفارغ هو 1 بايت حجم الهيكل الفارغ هو 0 بايت
7 مجموعة القمامة كما أنه يستخدم المرور بالرجوع، كما أنه يستخدم تمرير القيمة، وجمع القمامة غير ممكن
8 إدارة الذاكرة سهولة عملية جمع القمامة يساعد في إدارة الذاكرة الفعالة عدم وجود جمع القمامة يؤدي إلى الفقراء
9 المنشئات منشئات يسمح منشئات من جميع الأنواع، مثل مع أو بدون المعلمات
يسمح فقط منشئات المعلمة 10 ديستروكتورس استخدامه
11 متغيرات عضو تهيئة يتيح التهيئة مباشرة من المتغيرات عضو لا يسمح التهيئة كلمة مباشرة من المتغيرات عضو
12 < كائن خلق وهو أمر لا بد من استخدام الكلمة "الجديدة" أثناء إنشاء الكائن وهو اختياري لاستخدام الكلمة "الجديدة" أثناء إنشاء الكائن 13
عند استخدام؟ أفضل للأجسام الأكبر والمعقدة التي يتطلبها الميراث أفضل للأجسام الأصغر والأبسط حيث يكون الميراث أقل أهمية. لقد غطينا تقريبا كل الاختلافات بين الفئة والمنشأة، وإذا كنت تشعر أن هناك شيئا مفقودا، واسمحوا لنا أن نعرف. دعونا نتعلم معا والاستفادة القصوى من تلك المعرفة!