Javaأمثلة تشرح فكرة الـ Anonymous Inner Class في جافا
في المثال التالي قمنا بإنشاء Anonymous Class يمكن الإستفادة منه كلما إحتجنا إليه لأننا قمنا بتخزينه في كائن من نفس النوع.
لنفترض أننا نريد تعريف كائن من كلاس إسمه Anonymous
مع تخزين هذا الكائن في كائن من نفس النوع إسمه obj
.
المثال الأول
public abstract class Anonymous { // Anonymous إسمه Abstract هنا قمنا بتعريف كلاس نوعه public abstract void print(); // print() إسمها abstract هنا قمنا بتعريف دالة نوعها }
ركز فقط على طريقة إنشاء الكائن و تخزينه في كائن من نفس النوع.
ملاحظة: الـ Anonymous Class الذي قمنا بتعريفه يبدأ من الكلمة new
إلى آخر سطر.
Anonymous obj = new Anonymous() { public void print() { System.out.println("Anonymous Inner Class is called"); } };
كلما أردنا إستخدام الدالة print()
نكتب التالي.
obj.print();
هنا قمنا بإنشاء Anonymous Class و قمنا باستدعاء الدالة التي فعلنا لها Override فيه مباشرةً عند تعريفه.
الأسلوب التالي يستخدم في حال كنت تريد إستدعاء الدالة التي فعلت لها Override مرة واحدة فقط.
المثال الثاني
public abstract class Anonymous { // Anonymous إسمه Abstract هنا قمنا بتعريف كلاس نوعه public abstract void print(); // print() إسمها abstract هنا قمنا بتعريف دالة نوعها }
ركز فقط على طريقة إنشاء الكائن و إستدعاء الدالة منه مباشرةً بعد أن يتم إنشاؤه.
ملاحظة: الـ Anonymous Class الذي قمنا بتعريفه يبدأ من الكلمة new
إلى الرمز }
الموجود في آخر سطر.
new Anonymous() { public void print() { System.out.println("Anonymous Inner Class is called"); } }.print(); // Anonymous التي قنما بتعريفها بداخل الكلاس print() هنا قمنا باستدعاء الدالة
هنا لا يمكن إستخدام الدالة print()
من جديد لأنه لا يمكن الوصول للكائن الذي يحتويها. و بالتالي لن نستطيع إستدعاءها من جديد.