المُنشئ الخاص في Java: شرح حالات الاستخدام بمثال

نشرت: 2021-04-09

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

مقدمة

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

حالات استخدام المُنشئ الخاص

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

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

فئة سينجلتون

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

مثال 1: يوضح المثال التالي كيف يحد المُنشئ الخاص في Java من عدد الكائنات في فئة فردية.

استيراد java.io. * ؛

فئة newTestClass {

كائن newTestClass ثابت = فارغ ؛

كثافة العمليات أ = 20 ؛

newTestClass () {

}

// لقد أنشأنا مُنشئًا خاصًا

عرض فئة جديدة ثابتة

/ **

* displayInstance () هي طريقة عامة سنستخدمها لإنشاء مثيل.

* استدعاء هذه الطريقة للوصول إلى هذه الحالات من خارج الفصل الدراسي.

* /

{

إذا (الكائن == فارغ)

الكائن = newTestClass () ،

// تم إنشاء كائن فئة مفرد

كائن العودة

}

}

فئة SingletonClass العامة {

العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {

newTestClass example1 = newTestClass.displayInstance () ،

// عرض مثيل الفئة المنفردة عن طريق استدعاء الطريقة العامة

newTestClass example2 = newTestClass.displayInstance () ،

// عرض مثيل الفئة المنفردة عن طريق استدعاء الطريقة العامة

example1.a = example1.a + 26 ؛

System.out.println (“المثيل 1 الذي تم إنشاؤه له القيمة التالية =” + example1.a) ؛

System.out.println (“المثيل 2 الذي تم إنشاؤه له القيمة التالية =” + example2.a) ؛

}

}

انتاج |

المثيل 1 الذي تم إنشاؤه له القيمة التالية = 46

المثيل 2 الذي تم إنشاؤه له القيمة التالية = 46

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

مثال 2: يوضح المثال التالي كيف يضمن المُنشئ الخاص في Java عدم إنشاء أكثر من كائن واحد في المرة الواحدة.

// برنامج Java لتنفيذ فئة فردية

استيراد java.io. * ؛

فئة عامة newTestClass {

newTestClass var = null؛

newTestClass () {

// يمكن الوصول إلى المُنشئ الخاص داخل الفصل

}

newTestClass testObject () {العام الثابت newTestClass testObject ()

// تضمن هذه الطريقة إنشاء كائن واحد فقط في كل مرة

إذا (var == null) {

var = new newTestClass () ،

}

عودة فار

}

عرض الفراغ العام () {

System.out.println ("هذا مثال على مُنشئ خاص يستخدم فئة Singleton.") ؛

}

العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {

newTestClass newObject = newTestClass.testObject () ،

newObject.display () ،

}

}

انتاج |

هذا مثال على مُنشئ خاص يستخدم فئة Singleton.

مثال 2: مُنشئ خاص في Java للحد من عدد مثيلات الفئة.

يوضح هذا المثال كيف يمكنك تحديد عدد مثيلات الفئة عن طريق إعلان المُنشئ خاصًا.

تقييد فئة عامة

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

RestrictInstance obj؛

الباحث أ = 1 ؛

بينما (أ <= 20)

{

obj = RestrictInstance.getLimInstance () ،

أ ++ ؛

}

}

}

فئة RestrictInstance {

varCount العام الثابت العام = 0 ؛

/ **

* إنشاء مُنشئ خاص يزيد العدد

* لمتغير varCount بعد إنشاء كل مثيل

* /

RestrictInstance الخاص () {

varCount ++ ؛

System.out.println ("رقم المثيل" + varCount + "تم إنشاؤه.") ؛

}

عامة ثابتة متزامنة RestrictInstance getLimInstance () {

إذا (varCount <5) {

إرجاع RestrictInstance الجديد () ؛

}

System.out.println ("تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من المثيلات.") ؛

System.gc () ؛

عودة فارغة ؛

}

/ **

* حذف المثيل وتقليل العد

* من متغير varCount

* /

إنهاء الفراغ العام ()

{

System.out.println ("تم حذف المثيل.") ؛

varCount- ؛

}}

انتاج |

تم إنشاء المثيل رقم 1.

تم إنشاء المثيل رقم 2.

تم إنشاء المثيل رقم 3.

تم إنشاء المثيل رقم 4.

تم إنشاء المثيل رقم 5.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم حذف المثيل.

تم حذف المثيل.

تم حذف المثيل.

تم حذف المثيل.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم إنشاء المثيل رقم 1.

تم إنشاء المثيل رقم 2.

تم إنشاء المثيل رقم 3.

تم إنشاء المثيل رقم 4.

تم إنشاء المثيل رقم 5.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم الوصول إلى الحد الأقصى للمثيل. لا يُسمح لك بإنشاء المزيد من الأمثلة.

تم حذف المثيل.

تم حذف المثيل.

تم حذف المثيل.

تم إنشاء المثيل رقم 1.

تم إنشاء المثيل رقم 2.

تم إنشاء المثيل رقم 3.

تم إنشاء المثيل رقم 4.

تم إنشاء المثيل رقم 5.

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

خاتمة

الكود المستخدم في المقال هو لأغراض توضيحية فقط. يمكنك تعديل البيانات الواردة في الأمثلة وفقًا لمتطلباتك. في هذه المدونة ، ناقشنا كيف يحد المُنشئ الخاص في Java من عدد الكائنات في فئة فردية.

يمكنك تجربة الكود لتقوية معرفة مُنشئ Java الخاص بك. إذا كنت ترغب في اكتساب فهم متعمق لجافا ، فراجع برنامج upGrad Executive PG في دورة Full Stack Development المصممة للمهنيين العاملين لاكتساب الخبرة في هذا المجال.

ما هي المنشئات في البرمجة؟

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

ما هي أنواع المنشئات في جافا؟

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

ما هو المُنشئ الخاص في Java؟

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