כיצד ליישם כיתה אנונימית בג'אווה



בלוג זה יספק לך ידע מפורט ומקיף על כיתה אנונימית בג'אווה עם דוגמאות וכיצד הוא שונה ממעמד רגיל.

שיעורים אנונימיים מאפשרים לך לכתוב קוד קטן ומאפשרים לך להצהיר ולהקים את השיעור בו זמנית. לשיעורים אלה אין שמות, הוא משמש כשאתה רוצה להשתמש בכיתה כלשהי רק פעם אחת. זהו היבט חשוב בתכנות Java. בואו להבין מהי מחלקה אנונימית בג'אווה בסדר הבא:

הכרזה על שיעורים אנונימיים





בדרך כלל אנו יוצרים מחלקה, כלומר אנו מכריזים על מחלקה, אך שיעורים אנונימיים הם ביטויים, כלומר אנו מגדירים את המעמד האנונימי באחר. ביטוי . במילים פשוטות, המעמד הפנימי האנונימי הוא מחלקה ללא שמות ונוצר אובייקט אחד בלבד.

Anonymous-Class-In-Java



מחלקה אנונימית שימושית כאשר עלינו ליצור מופע של האובייקט בשיטות עומס יתר של מחלקה או ממשק מבלי ליצור תת-מחלקה של מחלקה.

אנונימיים יכולים להיווצר בשתי דרכים:

  • כיתה (יכול להיות גם מופשט)
  • מִמְשָׁק

בשיעור האנונימי אנו יכולים להכריז על הדברים הבאים:



כיצד ליצור שיעור יחיד בג'אווה - -
  • שדות
  • שיטות נוספות
  • אתחול למופעים
  • שיעורים מקומיים

תחביר של מחלקה אנונימית בג'אווה

התחביר של מחלקה אנונימית הוא בדיוק כמו קונסטרוקטור, אלא שיש הגדרת מחלקה בבלוק כפי שמוצג בקטע הבא:

// AnonymousClass = ממשק, מעמד מופשט / קונקרטי. AnonymousClass t = new AnonymousClass () {// שיטות ושדות ציבוריים בטלים someMethod () {// קוד הולך לכאן}}

בואו נסתכל על הדוגמה הבאה:

הדוגמה הבאה,HelloAnonymousClass, משתמש בכיתות אנונימיות בהצהרות האתחול של המשתנים המקומייםלברך מישהואך, משתמש בכיתה מקומית לצורך אתחול המשתנהשלום לברך:

מחלקה ציבורית HelloAnonymousClass {ממשק HelloWorld {public void sayHello () public void sayHelloTo (String someone)} public public sayHello () {class GreetWorld מיישם HelloWorld {String name = 'world' public void sayHello () {sayHelloTo ('world')} חלל ציבורי sayHelloTo (מחרוזת מישהו) {name = מישהו System.out.println ('שלום' + שם)}} HelloWorld greetWorld = חדש GreetWorld () HelloWorld greetSomeone = חדש HelloWorld () {שם מחרוזת = 'jon' בטל ציבורי sayHello ( ) {sayHelloTo ('Jon')} חלל ציבורי sayHelloTo (מחרוזת מישהו) {name = someone System.out.println ('hola' + name)}} greetWorld.sayHello () greetSomeone.sayHelloTo ('Doe')} סטטי ציבורי void main (String ... args) {HelloAnonymousClass myApp = new HelloAnonymousClass () myApp.sayHello ()}}

כפי שראינו כי מחלקה אנונימית היא ביטוי התחביר הוא בדיוק כמו קונסטרוקטור אלא שיש הגדרת מחלקה בבלוק. שקול את המיידיות של האובייקט greetSomeone:

HelloWorld greetSomeone = HelloWorld חדש () {שם מחרוזת = 'jon' פומבי ריק sayHello () {sayHelloTo ('ג'ון')} חלל ציבורי sayHelloTo (מחרוזת מישהו) {name = מישהו System.out.println ('hola' + שם) }}

הכיתה האנונימית מורכבת מאלה:

  • מפעיל חדש.
  • זה יכול ליישם ממשק או להרחיב כיתה. כמו בדוגמה לעיל, הוא מיישם את הממשק.
  • הוא מכיל סוגריים בדיוק כמו שיעורים רגילים על מנת להעביר טיעונים לבנאי.
  • מכיל גוף המכיל הצהרות שיטה. הצהרות אינן מורשות.

מעמד אנונימי צריך להיות חלק מהצהרות.

בדוגמה שלעיל, הביטוי המעמדי האנונימי הוא חלק מההצהרה שיזמהלברך מישהו.

דרכים ליצור מחלקה אנונימית בג'אווה

ישנן שלוש דרכים ליצור מחלקה פנימית בג'אווה

  • על ידי הרחבת הכיתה

אנו יכולים ליצור מחלקה פנימית אנונימית על ידי הרחבת מחלקה אחרת, נניח שעלינו ליצור שרשור באמצעות מחלקת Thread אנו יכולים ליצור מחלקה פנימית אנונימית במקום ליצור מחלקה נפרדת.

// תוכנית להמחשת מחלקה פנימית אנונימית על ידי הרחבת מחלקת כיתות אחרת AnonymousThreadClass {public static void main (String [] args) {// Anonymous Inner class that extates Thread class Thread t = Thread new () {public void run () {System .out.println ('ילד!')}} t.start () System.out.println ('הורה!')}}

תְפוּקָה:

הוֹרֶה!

יֶלֶד!

  • על ידי יישום ממשק

אנו יכולים גם ליצור מעמד פנימי אנונימי על ידי הטמעת הממשק. כעת, כשיצרנו מחלקה פנימית על ידי הרחבת מחלקה באופן דומה אנו יכולים ליצור מחלקה המיישמת ממשק.

// תוכנית להמחשת מחלקה פנימית אנונימית על ידי הטמעת מחלקת ממשק AnonymousThreadClass {ציבורי ריק ריק סטטי (String [] args) {// מחלקה פנימית אנונימית המיישמת ממשק Runnable r = new Runnable () {public void run () {System.out .println ('ילד!')}} חוט t = חוט חדש (r) t.start () System.out.println ('הורה!')}}

תְפוּקָה:

הוֹרֶה!

יֶלֶד!

  • כטיעון לשיטה / קונסטרוקטור

כדי להבין את התחביר, נסתכל על הדוגמה הבאה:

// תוכנית להמחשת Anonymous Class פנימי לפי מחלקת ארגומנטים AnonymousThreadClass {public static void main (String [] args) {// Class אנונימי עם ארגומנט קונסטרוקטור Thread t = new Thread (new Runnable () {public void run () {System. out.println ('ילד!')}} t.start () System.out.println ('הורה!')}}

תְפוּקָה:

הוֹרֶה!

יֶלֶד!

ההבדל בין מעמד פנימי רגיל לאנונימי

  • אנחנו יכולים ליישם מספר רב של ממשקים באמצעות מחלקה רגילה, אך עם מחלקה פנימית אנונימית אנו יכולים ליישם רק ממשק אחד.

  • בשיעור רגיל אנחנו יכולים להאריך שיעור וגם ליישם ממשקים מרובים אך, עם מחלקה פנימית אנונימית, אנו יכולים להרחיב מחלקה או ליישם ממשק אך לא שניהם בו זמנית.

  • עם אנונימי אנו לא יכול לכתוב בונה מכיוון שלמחלקה הפנימית האנונימית אין שם ושם הבנאי צריך להיות זהה לשם הכיתה.

במאמר זה ראינו מהו מעמד פנימי אנונימי וכיצד נוכל ליצור כזה. עברנו את התחביר של המעמד הפנימי האנונימי וגם כיצד נוכל ליצור מחלקה אנונימית בשלוש דרכים ובכך אנו מגיעים לסוף מאמר זה של הכיתה האנונימית בג'אווה. בדוק את מאת אדוריקה.

יש לך שאלה? ציין זאת במדור ההערות במאמר זה ונחזור אליך בהקדם האפשרי.