Java Reference
In-Depth Information
neededtoobtainareferencetoits
EnclosingClass
instance,itwouldspecify
En-
closingClass.this
.
Anonymous Classes
An
anonymous class
isaclasswithoutaname.Furthermore,itisnotamemberofitsen-
closingclass.Instead,ananonymousclassissimultaneouslydeclared(asananonymous
extension of a class or as an anonymous implementation of an interface) and instanti-
atedanyplacewhereitislegaltospecifyanexpression.
Listing3-10
demonstrates an
anonymous class declaration and instantiation.
Listing 3-10.
Declaring and instantiating an anonymous class that extends a class
abstract class Speaker
{
abstract void speak();
}
class ACDemo
{
public static void main(final String[] args)
{
new Speaker()
{
String msg = (args.length == 1) ? args[0] : "noth-
ing to say";
@Override
void speak()
{
System.out.println(msg);
}
}
.speak();
}
}
ACDemo
.Thelatterclass's
main()
methoddeclaresananonymousclassthatextends