Anonymous Inner Classes in Java

Declaration of Anonymous Classes

Anonymous Inner Classes are defined in another expression. Here is an example, HelloWorldAnonymousClasses, which uses anonymous classes in the initialization statements of the local variables frenchGreeting and spanishGreeting, but uses a local class for the initialization of the variable englishGreeting:



public class HelloWorldAnonymousClasses
{
  
    interface HelloWorld
    {
        public void greet();
        public void greetSomeone(String someone);
    }
  
    public void sayHello()
    {
        
        class EnglishGreeting implements HelloWorld
        {
            String name = "world";
            public void greet()
            {
                greetSomeone("world");
            }
            public void greetSomeone(String someone)
            {
                name = someone;
                System.out.println("Hello " + name);
            }
        }
      
        HelloWorld englishGreeting = new EnglishGreeting();
        
        HelloWorld frenchGreeting = new HelloWorld()
        {
            String name = "tout le monde";
            public void greet()
            {
                greetSomeone("tout le monde");
            }
            public void greetSomeone(String someone)
            {
                name = someone;
                System.out.println("Salut " + name);
            }
        };
        
        HelloWorld spanishGreeting = new HelloWorld()
        {
            String name = "mundo";
            public void greet()
            {
                greetSomeone("mundo");
            }
            public void greetSomeone(String someone)
            {
                name = someone;
                System.out.println("Hola, " + name);
            }
        };
        englishGreeting.greet();
        frenchGreeting.greetSomeone("Fred");
        spanishGreeting.greet();
    }

    public static void main(String... args)
    {
        HelloWorldAnonymousClasses myApp =
            new HelloWorldAnonymousClasses();
        myApp.sayHello();
    }            
}
   

Syntax of Anonymous Classes

The syntax of an anonymous class expression is like the invocation of a constructor, except that there is a class definition contained in a block of code.

Consider the instantiation of the frenchGreeting object:


    
    
      HelloWorld frenchGreeting = new HelloWorld()
      {
            String name = "tout le monde";
            public void greet()
            {
                greetSomeone("tout le monde");
            }
            public void greetSomeone(String someone)
            {
                name = someone;
                System.out.println("Salut " + name);
            }
        };
       

The anonymous class expression consists of the following:

• The new operator

• The name of an interface to implement or a class to extend. In this example, the anonymous class is implementing the interface HelloWorld.

• Parentheses that contain the arguments to a constructor, just like a normal class instance creation expression. Note: When you implement an interface, there is no constructor, so you use an empty pair of parentheses, as in this example.

• A body, which is a class declaration body. More specifically, in the body, method declarations are allowed but statements are not.

As an anonymous class definition is an expression, it must be part of a statement. In this example, the anonymous class expression is part of the statement that instantiates the frenchGreeting object

References : Oracle share on :        :  

Love to hear your Views / Guidance / Recommendations on this Post…

Explore the Technology World

Real Time Analytics with Spring Application Development FrameworkSpring is the most popular application development framework for enterprise Java.Millions of developers use Spring to build simple, truly portable, fast and fle ...Read MorePath Setting in Java When an application is launched from command prompt Windows OS searches for the executable program in the current working directory. The prompt throws an error ...Read MorePicture-in-Picture App for Android devices with Source CodePicture-in-Picture is a special type of multi-window mode mostly used for video playback for Android devices.Released under Apache License 2.0 , which means you ...Read Moreopen source free template for personal or company blogsLooking for perfect theme for personal or company blogs.Released under the MIT license, which means you can use this template for any purpose, even for commerci ...Read MoreHow to Build an App for the Google AssistantApps for the Google Assistant are the gateway for your users to engage with your services through Google Home, Android phones, iPhones.Watch here to build an as ...Read MoreIntroduction to AMP - Accelerated Mobile PagesAMP, short for Accelerated Mobile Pages, is new new open source initiative to make the mobile web awesome again.Watch Here the Introduction to AMP ...Read MoreFacebook |Google+ | Twitter | LinkedIn | Youtube About | Cookies-Policy | Disclaimer | Site Map | Contact

Call / Visit for New Batch

Services

Why Join Us

  • ➯ Free Demo Classes
  • ➯ No Registration Fee
  • ➯ Interview Questions
  • ➯ Study Materials
  • ➯ Softwares
  • ➯ Aptitude & Reasoning
  • ➯ Placement Assitance

Address

  • MyJava Training Institute ,
  • Plot No.243 , shop No 14 ,
  • Secnd Floor , Zone-II ,
  • M.P.Nagar , Bhopal,
  • Madhya Pradesh ( 462011 )
  • ☎  08871209400 , 7987028543
  • 🌐 www.myjava.in
FacebookGoogle +TwitterYouTube

MyJava - java Training Institute