logo

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

ال 'هذا' و ال ' ممتاز' الكلمات الرئيسية هي كلمات محجوزة يتم استخدامها في سياق مختلف. بالإضافة إلى ذلك، توفر Java أيضًا هذا() و ممتاز() المنشئات المستخدمة في سياق المنشئ. في هذا القسم سنناقش الاختلافات بين هذه والكلمة الرئيسية الفائقة و هذا () ومنشئ السوبر () ، في جافا.

الكلمة الأساسية الفائقة والمنشئ الفائق ().

الكلمة الرئيسية الفائقة

تُعرف الكلمة الأساسية المحجوزة المستخدمة لاستدعاء أسلوب أو متغير الفئة الأساسية باسم a ممتاز الكلمة الرئيسية. لا يمكننا استخدام ممتاز الكلمة الرئيسية باعتبارها معرف . لا تُستخدم الكلمة الأساسية super للإشارة إلى مثيل الفئة الأساسية فحسب، بل تُستخدم أيضًا للأعضاء الثابتين.

منشئ سوبر ().

ال ممتاز() يستخدم بشكل أساسي لاستدعاء وظائف الأعضاء والمنشئين من الفئة الأساسية.

سلسلة concat جافا

لنأخذ مثالا على كل من ممتاز الكلمة الرئيسية و ممتاز() لفهم كيفية عملهم.

SuperExample1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create Animal class which is base class of Animal class Animal{ // data member of Animal class String color = 'white'; } // create child class of Animal class Cat extends Animal{ //default constructor Cat() { // data members of the Cat class String color = 'Brown'; System.out.println('The cat is of color '+super.color); // calling parent class data member System.out.println('The cat is of color '+color); } } // create child class for Car class SuperExample1 extendsCat { // default constructor SuperExample1() { // calling base class constructor super(); System.out.println('The eyes of the cat is blue.'); } // main() method start publicstaticvoid main(String[] args) { // call default constructor of the SuperExample1 new SuperExample1(); System.out.println('Inside Main'); } } 

انتاج:

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

في الطريقة الرئيسية () قمنا بإصدار بيان SuperExample1 الجديد () . ويطلق على منشئ SuperExample1 فصل.

داخل المنشئ، قدمنا ​​بيانا ممتاز() الذي يستدعي مُنشئ فئته الأصلية، أي، قطة. في المنشئ، قدمنا ​​​​ثلاثة بيانات:

ما هو التجمع
  1. تهيئة اللون بالقيمة 'بني'.
  2. طباعة عضو بيانات فئة الأصل.
  3. طباعة عضو بيانات الفصل الحالي.

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

بعد تنفيذ البيان الأخير لل قطة فئة، يعود التدفق إلى منشئ الفئة SuperExample1 وينفذ العبارات المتبقية.

بعد الانتهاء من تنفيذ المثال الفائق1() ، يعود التدفق إلى الطريقة main() وينفذ العبارات المتبقية.

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

هذه الكلمة الأساسية ومنشئ هذا ().

هذه الكلمة الرئيسية

إنها كلمة أساسية محجوزة في Java تُستخدم للإشارة إلى كائن الفئة الحالي. وهو متغير مرجعي يتم من خلاله استدعاء الطريقة. الاستخدامات الأخرى لهذه الكلمة الرئيسية هي:

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

هذا () منشئ

يتم استخدام المُنشئ لاستدعاء مُنشئ واحد من مُنشئ آخر من نفس الفئة. دعونا نأخذ مثالا على حد سواء هذا الكلمة الرئيسية و هذا() لفهم كيفية عملهم.

قائمة جافا غير قابلة للتغيير

ThisExample1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create ThisExample1 class to understand the working of this() and this class ThisExample1 { // initialize instance and static variable int x = 5; staticinty = 10; // default constructor of class ThisExample1 ThisExample1() { // invoking current class constructor this(5); System.out.println('We are insie of the default constructor.'); System.out.println('The value of x = '+x); } ThisExample1(int x) { this.x = x; // override value of the current class instance variable System.out.println('We are inside of the parameterized constructor.'); System.out.println('The value of y = '+y); } publicstaticvoid main(String[] args) { // invoking constructor of the current class new ThisExample1(); System.out.println('Inside Main'); } } 

انتاج:

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

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

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

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

الفرق بين هذا () والمنشئ الفائق ().

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