Call for New Batch / Any Query / Demo Classes : ☎ 08871209400 , 7987028543 , Zone-2,M.P.Nagar,Bhopal

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…

More Programming Topics

Key Features of the Java LanguageJava is simpler than most other languages that are used to create server applications because of its consistent enforcement of the object model.Introduction To JavaThe following sections explain how Java technology is both a programming language and a platform and provide an overview of what this technology can do for youChaining Constructor using SuperIf a subclass constructor invokes a constructor of its superclass either explicitly or implicitly there will be a whole chain of constructors called all the way back to the constructor of Object.Multilevel Inheritance in JavaMultilevel Inheritance is said to have taken place when a child class inherits from a parent class and then child class becomes the parent class for another class.Interface Inheritance JavaAn Interface declaration consists of modifiers the keyword interface the interface name a comma separated list of parent interfaces and the interface body.Inheritance in JavaA class that is derived from another class is called a subclass. The class from which the subclass is derived is called a superclass. This process of inheriting properties from another class is called Inheritance.White Spaces in JavaWhite Space is a character in Java. A character satisfies to be a White Space if and only if it is a Unicode space character.Serialization and Deserialization JavaTo serialize an object means to convert its state to a byte stream so that the byte stream can be reverted back into a copy of the object.Implementations in Collection FrameworkImplementations are the data objects used to store collections, which implement the interfaces described in the Interfaces section.

Explore the Technology World

An introduction to YouTube's new designThe Challenge Facing YouTube’s Design and Interaction Team When They Launched the Redesign Two Years Ago Was How to Tie Together a Host of Products with Very Different Audiences and UsesSpace Station Crew Member Discusses His First Days in Space with Minnesota StudentsAboard the International Space Station, Expedition 53 Flight Engineer Mark Vande Hei of NASA fielded questions about life and work on the orbital outpost during an in-flight educational event Sept. 18 with students from the Pine River-Backus schools in Pine River, MinnesotaSpace Station Crew Members Discuss Life in Space with the MediaAboard the International Space Station, Expedition 53 Flight Engineers Mark Vande Hei and Joe Acaba of NASA and Paolo Nespoli of the European Space Agency discussed life and work aboard the orbital complex in a pair of in-flight interviewsBeyond Mobile Server Games with Visual Studio for MacYou know that Visual Studio for Mac does Xamarin, but do You know what Else? We'll take a look at using Visual Studio for Mac for Mobile, Web, Game, Server less and IoT Development, and Connecting them with .NET Standard 2.0An introduction to YouTube's new designhe Challenge Facing YouTube’s Design and Interaction Team When They Launched the Redesign Two Years Ago Was How to Tie Together a Host of Products with Very Different Audiences and UsesAndroid Oreo Safer Than EverProtecting you from harm’s way. Android Oreo is more Secure than Ever.With Google Play Protect Built in, You’ll have Peace of Mind in the Palm of Your Hands

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