מחלקה פנימית אנונימית של Java היא מחלקה פנימית ללא שם ועבורה נוצר רק אובייקט בודד. מחלקה פנימית אנונימית יכולה להיות שימושית בעת יצירת מופע של אובייקט עם 'תוספות' מסוימות, כגון עומס יתר של שיטות של מחלקה או ממשק, ללא צורך ממשי במחלקת משנה של מחלקה.
ניק פולוס ברק שחור
במילים פשוטות, מחלקה שאין לה שם ידועה כמחלקה פנימית אנונימית בג'אווה. יש להשתמש בו אם אתה צריך לעקוף שיטת מחלקה או ממשק. ניתן ליצור מחלקה פנימית של Java Anonymous בשתי דרכים:
- שיעור (יכול להיות מופשט או קונקרטי).
- מִמְשָׁק
דוגמה לכיתה פנימית אנונימית ב-Java באמצעות מחלקה
TestAnonymousInner.java
abstract class Person{ abstract void eat(); } class TestAnonymousInner{ public static void main(String args[]){ Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; p.eat(); } }בדוק את זה עכשיו
תְפוּקָה:
איך למיין מערך ב-java
nice fruits
עבודה פנימית של קוד נתון
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- מחלקה נוצרת, אך שמה נקבע על ידי המהדר, מה שמרחיב את המחלקה Person ומספק את היישום של שיטת eat() .
- נוצר אובייקט מהמחלקה אנונימית שאליו מתייחסים 'p', משתנה התייחסות מסוג Person.
מחלקה פנימית שנוצרה על ידי המהדר
import java.io.PrintStream; static class TestAnonymousInner extends Person { TestAnonymousInner(){} void eat() { System.out.println('nice fruits'); } }
דוגמה בכיתה פנימית אנונימית של Java באמצעות ממשק
interface Eatable{ void eat(); } class TestAnnonymousInner1{ public static void main(String args[]){ Eatable e=new Eatable(){ public void eat(){System.out.println('nice fruits');} }; e.eat(); } }בדוק את זה עכשיו
תְפוּקָה:
nice fruits
עבודה פנימית של קוד נתון
הוא מבצע שתי משימות עיקריות מאחורי הקוד הזה:
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- נוצרת מחלקה, אך שמה נקבע על ידי המהדר, אשר מיישם את ממשק Eatable ומספק את היישום של שיטת eat() .
- נוצר אובייקט מהמחלקה אנונימית שאליו מתייחסים 'p', משתנה התייחסות מסוג Eatable.
מחלקה פנימית שנוצרה על ידי המהדר
import java.io.PrintStream; static class TestAnonymousInner1 implements Eatable { TestAnonymousInner1(){} void eat(){System.out.println('nice fruits');} }