Java Reference
In-Depth Information
static variable of a static inner class within the outer class, simply preface the static
variable name with the name of the inner class and a dot.
Static Inner Class
A static inner class is one that is not associated with an object of the outer class. It is indi-
cated by including the modifier static in its class heading.
Self-Test Exercises
24. Can you have a static method in a nonstatic inner class?
25. Can you have a nonstatic method in a static inner class?
Public Inner Classes
If an inner class is marked with the public modifier instead of the private modifier,
then it can be used in all the ways we discussed so far, but it can also be used outside
of the outer class.
The way that you create an object of the inner class outside of the outer class is a bit dif-
ferent for static and nonstatic inner classes. We consider the case of a nonstatic inner class
first. When creating an object of a nonstatic inner class, you need to keep in mind that
every object of the nonstatic inner class is associated with some object of the outer class. To
put it another way, to create an object of the inner class, you must start with an object of
the outer class. This has to be true, since an object of the inner class may invoke a method
of the outer class or reference an instance variable of the outer class, and you cannot have
an instance variable of the outer class unless you have an object of the outer class.
For example, if you change the class Money in Display 13.9 from private to public , so
the class definition begins
public inner
class
public class BankAccount
{
public class Money
then you can use an object of the nonstatic inner class Money outside of the class
BankAccount as illustrated by the following:
BankAccount account = new BankAccount();
BankAccount.Money amount =
account. new Money("41.99");
System.out.println(amount.getAmount());
This code produces the output
41.99
Search WWH ::




Custom Search