الفرق بين هذا والسوبر في جافا

جدول المحتويات:

الفرق بين هذا والسوبر في جافا
الفرق بين هذا والسوبر في جافا

فيديو: الفرق بين هذا والسوبر في جافا

فيديو: الفرق بين هذا والسوبر في جافا
فيديو: 34- OOP in java super, this تعلم برمجة جافا|البرمجة الكائنية التوجه 2024, يوليو
Anonim

الفرق الرئيسي - هذا مقابل سوبر في جافا

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

ما هذا في جافا؟

تُستخدم الكلمة الرئيسية "هذا" للإشارة إلى كائن حالي. ارجع إلى برنامج Java المحدد.

الفرق بين هذا وسوبر في جافا
الفرق بين هذا وسوبر في جافا

الشكل 01: برنامج جافا باستخدام هذه الكلمة الأساسية

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

يمكن استخدام الكلمة الرئيسية "this" لاستدعاء طريقة الفصل الحالية. الرجوع إلى برنامج جافا المحدد.

فئة عامة ThisDemo {

public static void main (String args) {

Myclass myClass=new Myclass () ؛

myClass. B () ؛

}

}

class Myclass {

عام باطل أ () {

System.out.println (“A”) ؛

}

عام باطل B () {

System.out.prinltn (“B”) ؛

this. A () ؛

}

}

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

من الممكن أيضًا استخدام هذه الكلمة الأساسية لاستدعاء مُنشئ الفئة الحالي. قم بإحالة البرنامج المحدد.

فئة عامة ThisDemo {

public static void main (String args) {

A obj=جديد A (5) ؛

}

}

فئة أ {

عام أ () {

System.out.println (“المُنشئ أ”) ؛

}

public A (int x) {

هذا () ؛

System.out.println (“مُنشئ ذو معلمات أ”) ؛

}

}

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

ما هو السوبر في جافا؟

الكلمة الرئيسية "سوبر" مرتبطة بالميراث. الوراثة مفهوم رئيسي في البرمجة الشيئية. يسمح باستخدام خصائص وطرق الفئة الموجودة بالفعل لفئة جديدة. تُعرف الفئة الموجودة بالفعل بالفئة الأصلية أو الطبقة الفائقة. تُعرف الفئة الجديدة بالفئة الفرعية أو الفئة الفرعية.

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

افترض أن هناك فئتين مثل A و B. الفئة A هي الطبقة العليا والفئة B هي الفئة الفرعية. كلا الصنفين أ ، ب لهما طريقة عرض

فئة عامة A {

عرض باطل عام () {

System.out.println (“A”) ؛

}

}

الفئة العامة B تمتد إلى {

عرض باطل عام () {

System.out.println (“B”) ؛

}

}

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

الفرق بين هذا والسوبر في Java_Figure 02
الفرق بين هذا والسوبر في Java_Figure 02

الشكل 02: برنامج Java يستخدم الكلمة الرئيسية الفائقة

وفقًا للبرنامج أعلاه ، تحتوي الفئة A على متغير اسمه رقم بالقيمة 10. تمتد الفئة B إلى A ولها متغير اسمه رقم بالقيمة 20. بشكل عام ، عند إنشاء كائن من النوع B واستدعاء طريقة العرض يجب أن يعطي الرقم في الفئة الفرعية لأن الفئة الجديدة تجاوزت قيمة الطبقة الفائقة.باستخدام super.num ، تتم طباعة قيمة رقم الفئة الممتازة.

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

فئة عامة رئيسية {

public static void main (String args) {

B obj=ب جديد () ؛

}

}

فئة أ {

أ () {

System.out.println (“A”) ؛

}

}

الفئة B تمتد إلى {

ب () {

سوبر () ؛

System.out.println (“B”) ؛

}

}

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

السوبر باستخدام الطريقة كما يلي

الفرق الرئيسي بين هذا والسوبر في جافا
الفرق الرئيسي بين هذا والسوبر في جافا

الشكل 03: برنامج جافا الذي يستدعي طريقة الطبقة الفائقة

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

ما هو التشابه بين هذا و السوبر؟

كلاهما كلمات رئيسية في برمجة Java

ما هو الفرق بين هذا والسوبر

هذا مقابل سوبر

"هذا" هو متغير مرجعي يستخدم للإشارة إلى الكائن الحالي. "super" هو متغير مرجعي يستخدم للإشارة إلى كائن من فئة superclass فوري.
متغير المثيل
يمكن الإشارة إلى متغير مثيل الفئة الحالي باستخدام هذا يمكن الإشارة إلى متغير مثيل Superclass باستخدام super
طريقة الفصل
يمكن استدعاء طريقة الفصل الحالية باستخدام هذا يمكن استدعاء طريقة Superclass باستخدام super
منشئ
يمكن استدعاء مُنشئ الفئة الحالي باستخدام (). يمكن استدعاء مُنشئ Superclass باستخدام super ().

ملخص - هذا مقابل سوبر في جافا

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

قم بتنزيل ملف PDF الخاص بهذا مقابل super في Java

يمكنك تنزيل نسخة PDF من هذه المقالة واستخدامها للأغراض غير المتصلة بالإنترنت وفقًا لملاحظة الاقتباس. يرجى تنزيل نسخة PDF من هنا: الفرق بين هذا والسوبر في Java

موصى به: