<< Chapter < Page Chapter >> Page >

Simple event handlers

In this demo program, the event handlers simply display messages on the screen, and in the case of the close button, terminatethe program. In a real world program, the behavior of the event handlers would likely be much more substantive, but the overall skeleton of the program neednot be any different from that illustrated here.

Run the program

I encourage you to copy the code from Listing 10 . Compile the code and execute it. Experiment with the code,making changes, and observing the results of your changes. Make certain that you can explain why your changes behave as they do.

Summary

In addition to a number of other items, a class definition can contain:

  • Member classes
  • Local classes
  • Anonymous classes
  • Nested top-level classes and interfaces

Member classes and local classes were explained in previous modules. This module explains anonymous classes.

Although there are some differences, an anonymous class is very similar to a local class without a name. Instead ofdefining a local class and then instantiating it, you can often use an anonymous class to combine these two steps.

An anonymous class is defined by a Java expression, not a statement. Therefore, an anonymous class definition canbe included within a larger overall Java expression.

Anonymous class definitions are often included as arguments to method calls, or as the right operand ofassignment operators.

An object of an anonymous class must be internally linked to an object of the enclosing class.

There is no such thing as an anonymous interface, a local interface, or a member interface.

An anonymous class can often be defined very close to its point of use. Once you become accustomed tothe somewhat cryptic syntax used with anonymous classes, this can lead to improved code readability.

Probably the most important benefit of anonymous classes has to do with accessing the members of enclosing classes. As withmember classes and local classes, methods of an anonymous class have direct access to all the members of the enclosing classes, including private members.Thus the use of anonymous classes can sometimes eliminate the requirement to connect objects together via constructor parameters. In addition, objects ofanonymous classes have access to final local variables that are declared within the scope of the anonymous class.

An anonymous class can be particularly useful in those cases where

  • There is no reason for an object of the anonymous class to exist in the absence of an object of the enclosing class.
  • There is no reason for an object of the anonymous class to exist outside a method of the enclosing class.
  • Methods of the object of the anonymous class need access to members of the object of the enclosing class.
  • Methods of the object of the anonymous class need access to final local variables and method parameters belonging to the method in which the anonymous class is defined.
  • Only one instance of the anonymous class is needed.
  • There is no need for the class to have a name that is accessible elsewhere in the program.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask