الانتقال إلى المحتوى الرئيسي

ما هو الفرق بين الهيكل والفئة مع أمثلة التعليمات البرمجية والتفسيرات

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

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

الاسم = ن;

  1. }
  2. };
  3. في المثال أعلاه ، نحدد بنية " نقطة "بخاصيتين" س "و"ص". نحدد أيضا فئة " شخص "بخاصية" اسم " واحدة. لاحظ أن أساليب الفئة لها حق الوصول إلى خصائص وأساليب كائن الفئة.
  4. أيضا ، الهياكل والطبقات لديها قواعد مختلفة للميراث. في ج++ ، ترث الهياكل من الهياكل الأخرى ، ويمكن أن ترث الطبقات من الطبقات الأخرى. هذا يسمح لك بإنشاء تسلسل هرمي للكائنات مع وظائف مشتركة.
  5. في الختام ، تعتبر الهياكل والفئات أدوات قوية في البرمجة الشيئية. أنها تسمح لنا بتحديد الكائنات ذات الخصائص والأساليب المشتركة. يكمن الاختلاف بين الهيكل والفئة في نوع القيمة والمرجع ، وكذلك في قواعد الميراث. يعتمد اختيار استخدام بنية أو فئة على المهمة المحددة ومتطلبات الأداء وسهولة استخدام الكود.
  6. تحديد الهيكل والفئة في البرمجة
  7. الهيكل
  8. فئة
  9. الاختلافات الرئيسية بين الهيكل والطبقة
  10. التغليف

الميراث

تعدد الأشكال

التجريد

أمثلة التعليمات البرمجية باستخدام الهيكل والفئة

  • مثال على استخدام الهيكل:
  • مثال على استخدام فئة:
  • نموذج التعليمات البرمجية مع هيكل

سؤال وجواب

ما هو الفرق بين هيكل وفئة?

تحديد الهيكل والفئة في البرمجة

الهيكل والفئة هما مفهومان أساسيان في البرمجة يستخدمان لتنظيم الكود وبنيته.

الهيكل عبارة عن مجموعة من المتغيرات من نفس أنواع البيانات أو أنواع مختلفة مدمجة في وحدة واحدة. يسمح لك بتجميع البيانات ذات الصلة معا بحيث يكون الرمز أكثر تنظيما وفهما.

مثال على البنية هو بنية بيانات "المستخدم" ، والتي يمكن أن تحتوي على المتغيرات التالية:

الاسم

العمر

البريد الإلكتروني

يمكن استخدام الهياكل في مختلف مجالات البرمجة ، على سبيل المثال ، في ج/ج++ ، ج# ، جافا ولغات أخرى.

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

يمكن للفئات أن ترث الخصائص والأساليب من الفئات الأخرى وتستجيب بشكل متعدد الأشكال لاستدعاءات الطريقة.

كلا المفهومين-الهيكل والفئة-هما عنصران مهمان لتنظيم الكود وإنشاء برامج أكثر مرونة ومرونة.

الهيكل

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

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

المزايا الرئيسية للهياكل:

تجميع المتغيرات في كائن واحد;

تسهيل العمل مع البيانات والأشياء المعقدة;

تبسيط التعليمات البرمجية بسبب سهولة الوصول إلى متغيرات الهيكل.

مثال على إعلان بنية في لغة البرمجة ج programming:

هيكل السيارة {

ستد:: سلسلة العلامة التجارية;

الأمراض المنقولة جنسيا:: سلسلة نموذج;

السنة الدولية;

};

مثال على إعلان بنية في لغة برمجة بايثون:

سيارة فئة:

ديف _ _ الحرف الأول__(النفس ، العلامة التجارية ، نموذج ، السنة):

النفس.العلامة التجارية = العلامة التجارية

النفس.نموذج = نموذج

النفس.السنة = السنة

مثال على استخدام الهيكل:

سيارة ميكار;

ميكار.العلامة التجارية = "تويوتا";

ميكار.نموذج = "كامري";

ميكار.السنة = 2020;

طباعة (ميكار.العلامة التجارية);

طباعة (ميكار.نموذج);

طباعة (ميكار.السنة);

نتيجة لتنفيذ التعليمات البرمجية ، وسوف يكون الإخراج:

تويوتا

كامري

2020

الهياكل هي الأساس لإنشاء فئات وكائنات في لغات البرمجة الشيئية. إنها تسمح لك بدمج المتغيرات والوظائف في كل واحد ، مما يبسط بدوره فهم هياكل البرنامج واستخدامها.

فئة

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

الطبقات هي اللبنات الأساسية من أوب. يتم استخدامها لإنشاء كائنات تمثل كيانات حقيقية أو مفاهيم مجردة.

هنا مثال على فئة في لغة البرمجة جافا:

شخص الطبقة العامة {

اسم السلسلة الخاصة;

private int age;

// Конструктор класса

public Person(String name, int age) {

this.name = name;

this.age = age;

}

// Методы класса

public String getName() {

return name;

}

public int getAge() {

return age;

}

public void sayHello() {

System.out.println("Привет, меня зовут " + name + " и мне " + age + " лет.");

}

}

В этом примере класс Person определяет два поля: name (имя) и age (возраст). هذه الحقول خاصة ، مما يعني أنه لا يمكن تعديلها مباشرة من خارج الفصل. ثم يحتوي الفصل على منشئ ، طريقة خاصة لتهيئة كائنات الفئة. منشئ يأخذ اسم والعمر الحجج ويحدد قيم الحقول.

يحدد الفصل أيضا ثلاث طرق: جيتنام ، جيتاج ، وسيهيلو. أساليب جيتنام و جيتاج تسمح لك للحصول على قيم اسم والحقول العمر ، على التوالي ، في حين أن طريقة سايهيلو إخراج تحية باستخدام إخراج وحدة التحكم.

لإنشاء كائن استنادا إلى فئة ، استخدم الكلمة الرئيسية الجديدة:

شخص شخص = شخص جديد ("إيفان" ، 25);

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

اسم السلسلة = شخص.جيتنام () ؛ / / "إيفان"

كثافة العمليات العمر = شخص.جيتاج () ؛ / / 25

شخص.سايهيلو () ؛ / / المخرجات " مرحبا ، اسمي إيفان وعمري 25 عاما."

وبالتالي ، فإن الطبقة هي العنصر الرئيسي في أوب الذي يسمح لك لوصف البيانات وسلوك الكائنات.

الاختلافات الرئيسية بين الهيكل والطبقة

1. بناء الجملة

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

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

ص = نيوي;

  • }

إنت جيتكس () {

العودة س;

}

إنت جيتي () {

العودة ذ;

}

};

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

التغليف

التغليف هو أحد المبادئ الأساسية للبرمجة الموجهة للكائنات ، والتي تسمح لك بدمج البيانات والأساليب التي تعمل مع هذه البيانات في فئة واحدة.

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

في الفصل ، يمكن الإعلان عن البيانات والأساليب بمعدلات وصول مختلفة:

العامة: تتوفر البيانات والأساليب من أي جزء من التعليمات البرمجية;

محمي: البيانات والأساليب متوفرة فقط داخل الفصل وأحفاده;

خاص: تتوفر البيانات والأساليب فقط داخل الفصل.

هنا مثال على التعليمات البرمجية التي توضح التغليف:

"'جافا

شخص الطبقة العامة {

اسم السلسلة الخاصة;

العمر الدولي الخاص;

الشخص العام(اسم السلسلة ، العمر الدولي) {

this.name = الاسم;

هذا.العمر = العمر;

}

سلسلة العامة جيتنام () {

العودة this.name;

}

العامة الباحث جيتاج () {

أعد هذا.العمر;

}

الفراغ العام سايهيلو () {

النظام.خارج.برينتلن ("مرحبا ، اسمي" + this.name + "وأنا" + هذا.العمر + " سنوات!");

}

}

"`

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

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

الميراث

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

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

نموذج كود بايثون:

فئة السيارة:

ديف _ _ الحرف الأول__(النفس ، والعلامة التجارية ، واللون):

النفس.العلامة التجارية = العلامة التجارية

النفس.اللون = اللون

ديف ستارت _ إنجين (النفس):

طباعة ("بدأ المحرك.")

ديف ستوب إنجين (النفس):

طباعة ("توقف المحرك.")

سيارة فئة (مركبة):

ديف _ _ الحرف الأول__(الذات ، العلامة التجارية ، اللون ، عدد الأبواب):

سوبر ().__ الحرف الأول__(العلامة التجارية ، اللون)

النفس.عدد الأبواب = عدد الأبواب

مواطنه مفتوحة الباب (النفس):

طباعة ("فتح الباب.")

مواطنه إغلاق الباب (النفس):

طباعة ("الباب مغلق.")

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

تعدد الأشكال هو أحد المفاهيم الأساسية للبرمجة الموجهة للكائنات ، والتي تتيح لك استخدام كائنات من فئات مختلفة بنفس الواجهة.

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

لفهم كيفية عمل تعدد الأشكال ، ضع في اعتبارك المثال التالي:

"'بايثون

فئة الحيوان:

ديف _ _ الحرف الأول__(الذات ، الاسم):

self.name = الاسم

مواطنه الكلام (النفس):

تمريرة

كلب فئة (حيوان):

مواطنه الكلام (النفس):

return «Гав-гав!»

class Cat(Animal):

def speak(self):

return «Мяу-мяу!»

class Cow(Animal):

def speak(self):

return «Му-му!»

animals = [Dog(«Барсик»), Cat(«Мурзик»), Cow(«Буренка»)]

for animal in animals:

print(animal.name + «: » + animal.speak())

«`

В данном примере у нас есть базовый класс Animal, а также его производные классы Dog, Cat и Cow. كل هذه الفئات لديها طريقة الكلام التي ترجع الصوت الذي أدلى به كل من الحيوانات.

نقوم بإنشاء قائمة بالحيوانات التي نضيف إليها حالات من ثلاث فئات مختلفة: الكلب والقط والبقرة. ثم ، باستخدام حلقة ، نذهب من خلال كل عنصر من عناصر القائمة وإخراج اسم كل حيوان ، وكذلك الصوت الذي يصدره.

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

نتيجة لتنفيذ هذا الرمز ، سوف نحصل على الإخراج التالي:

بارسيك: اللحمة-اللحمة!

مواء مواء!

مو-مو!

وهكذا ، تعدد الأشكال يسمح لنا لتوحيد العمل مع الكائنات من فئات مختلفة ، مما يبسط إلى حد كبير التنمية ويعتبر واحدا من المبادئ الأساسية لل أوب.

التجريد

التجريد هو واحد من المبادئ الأساسية للبرمجة وجوه المنحى (أوب). يسمح لك بإخفاء تفاصيل التنفيذ وتقديم الكائنات كمجموعة من المفاهيم أو الفئات المجردة.

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

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

في ال ج # لغة البرمجة ، يمكن تنفيذ التجريد باستخدام فئات وواجهات مجردة. توفر الفئات المجردة تطبيقا أساسيا للفئات المشتقة ، وقد تحتوي على طرق مجردة دون تنفيذ. تحدد الواجهات مجموعة من الأساليب التي سيتم تنفيذها بواسطة فئة ، ولا تحتوي على تطبيقات للطرق نفسها.

فيما يلي مثال على فئة مجردة وواجهة في ج#:

// فئة مجردة "الشكل"

شخصية فئة مجردة عامة

{

الملخص العام حساب مزدوج المنطقة();

}

// واجهة "تتحرك"

واجهة عامة تتحرك

{

الخطوة باطلة (الباحث س ، الباحث ص);

}

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

كما أن استخدام التجريد يسهل على المطورين الآخرين فهم رمز البرنامج ، لأنه يسمح لهم بالتركيز على الجوانب الرئيسية للنظام ، متجاهلين التفاصيل منخفضة المستوى.

أمثلة التعليمات البرمجية باستخدام الهيكل والفئة

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

مثال على استخدام الهيكل:

دعونا إنشاء بنية "نقطة" مع اثنين من الخصائص — الإحداثيات س و ص:

نقطة الهيكل

{

العامة كثافة العمليات العاشر;

العامة الباحث ذ;

}

نقطة نقطة = نقطة جديدة ();

نقطة.س = 10;

نقطة.ص = 20;

وحدة التحكم.خط الكتابة ("إحداثيات النقطة: س =" + نقطة.س + "، ص = " + نقطة.ذ);

في هذا المثال ، نقوم بإنشاء متغير نقطة من نوع النقطة وتعيين قيم الإحداثيات س = 10 و ص = 20. ثم نقوم بإخراج قيم هذه الإحداثيات إلى وحدة التحكم.

Пример использования класса:

Создадим класс «Сотрудник» с двумя свойствами — именем и зарплатой:

موظف فئة

{

اسم السلسلة الخاصة;

راتب مزدوج خاص;

موظف عام (اسم السلسلة ، راتب مزدوج)

{

this.name = الاسم;

هذا.الراتب = الراتب;

}

سلسلة العامة جيتنام()

{

اسم الإرجاع;

}

العامة مزدوجة جيتسالاري()

{

عودة الراتب;

}

}

موظف موظف = موظف جديد ("Иван иванов" ، 50000.0);

وحدة التحكم.خط الكتابة ( ":: "+ موظف.جيتنام());

وحدة التحكم.خط الكتابة ("راتب الموظف:" + موظف.جيتسالاري());

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

وبالتالي ، فإن الهيكل والفئة تسمح لنا بهيكلة التعليمات البرمجية وإنشاء كائنات مع الخصائص والأساليب اللازمة.

نموذج التعليمات البرمجية مع هيكل

يوجد أدناه نموذج رمز يوضح استخدام الهيكل في لغة البرمجة سي: