كيفية تنفيذ فئة Anonymous Class في Java



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

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

التصريح عن فئات مجهولة





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

Anonymous-Class-In-Java



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

يمكن إنشاء مجهول بطريقتين:

  • فئة (يمكن أيضًا أن تكون مجردة)
  • واجهه المستخدم

في الفصل المجهول يمكننا التصريح بما يلي:



  • مجالات
  • طرق اضافية
  • مهيئات المثيل
  • الطبقات المحلية

بناء جملة فئة مجهول في جافا

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

// AnonymousClass = واجهة ، فئة مجردة / ملموسة. AnonymousClass t = new AnonymousClass () {// الطرق والحقول public void someMethod () {// code go here}}

دعنا نلقي نظرة على المثال التالي:

المثال التالي ،HelloAnonymousClass، يستخدم فئات مجهولة في بيانات التهيئة للمتغيرات المحليةتحية شخص ماولكن ، يستخدم فئة محلية لتهيئة المتغيرترحيب العالم:

فئة عامة HelloAnonymousClass {واجهة HelloWorld {public void sayHello () public void sayHelloTo (String someone)} public void sayHello () {class GreetWorld تنفذ HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} public void sayHelloTo (String someone) {name = someone System.out.println ('Hello' + name)}} HelloWorldreetWorld = new GreetWorld () HelloWorldreetSomeone = new HelloWorld () {String name = 'jon' public void sayHello ( ) {sayHelloTo ('Jon')} public void sayHelloTo (String someone) {name = someone System.out.println ('hola' + name)}} WHITEWorld.sayHello ()reetSomeone.sayHelloTo ('Doe')} public static void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

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

كيفية عمل قاموس في جافا
HelloWorldreetSomeone = new HelloWorld () {String name = 'jon' public void sayHello () {sayHelloTo ('Jon')} باطل عام sayHelloTo (String someone) {name = someone System.out.println ('hola' + name) }}

يتكون الفصل المجهول مما يلي:

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

يجب أن يكون الفصل المجهول جزءًا من العبارات.

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

طرق إنشاء فئة مجهولة في Java

هناك 3 طرق لإنشاء فئة داخلية في Java

  • عن طريق تمديد الفصل

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

رمي مقابل رميات مقابل رميات في جافا
// برنامج لتوضيح الفئة الداخلية المجهولة من خلال توسيع فئة الفئة الأخرى AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class التي تقوم بتوسيع فئة مؤشر الترابط Thread t = new Thread () {public void run () {النظام .out.println ('Child!')}} t.start () System.out.println ('Parent!')}}

انتاج:

الأبوين!

طفل!

  • من خلال تنفيذ الواجهة

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

// برنامج لتوضيح فئة Anonymous Inner عن طريق تنفيذ فئة الواجهة AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class التي تنفذ الواجهة Runnable r = new Runnable () {public void run () {System.out .println ('Child!')}} الموضوع t = موضوع جديد (r) t.start () System.out.println ('Parent!')}}

انتاج:

الأبوين!

طفل!

  • كحجة لمنهج / منشئ

لفهم بناء الجملة ، دعنا نلقي نظرة على المثال أدناه:

// برنامج لتوضيح فئة Anonymous Inner بواسطة فئة الوسيطة AnonymousThreadClass {public static void main (String [] args) {// Anonymous class with constructoruments Thread t = new Thread (new Runnable () {public void run () {System. out.println ('Child!')}}) t.start () System.out.println ('Parent!')}}

انتاج:

الأبوين!

طفل!

الفرق بين الطبقة الداخلية العادية والمجهولة

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

  • مع الفصل العادي نستطيع تمديد الفصل وأيضًا تنفيذ واجهات متعددة ، ولكن باستخدام فئة داخلية مجهولة ، يمكننا إما توسيع فئة أو تنفيذ واجهة ولكن ليس كليهما في نفس الوقت.

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

    فئة محول في جافا مع مثال

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

حصلت على السؤال؟ اذكرها في قسم التعليقات في هذه المقالة وسنعاود الاتصال بك في أقرب وقت ممكن.