Java Reference
In-Depth Information
Display 13.9
Class with an Inner Class (part 2 of 2)
19
return (dollars + "." + cents);
20
else
21
return (dollars + ".0" + cents);
22 }
23 public void addIn(Money secondAmount)
24 {
25 abortOnNull(secondAmount);
26 int newCents = (cents + secondAmount.cents)%100;
27 long carry = (cents + secondAmount.cents)/100;
28 cents = newCents;
29 dollars = dollars + secondAmount.dollars + carry;
30 }
31 private void abortOnNull(Object o)
32 {
33 if (o == null )
34 {
35 System.out.println("Unexpected null argument.");
36 System.exit(0);
37 }
38 }
39 }
40
The definition of the inner class ends here, but the definition
of the outer class continues in this display.
private Money balance;
To invoke a nonstatic method of
the inner class outside of the inner
class, you need to create an object
of the inner class.
41 public BankAccount()
42 {
43 balance = new Money("0.00") ;
44 }
This invocation of the inner class
method getAmount() would
be allowed even if the method
getAmount() were marked as
private.
45 public String getBalance()
46 {
47
return balance.getAmount();
48 }
49 public void makeDeposit(String depositAmount)
50 {
51 balance.addIn( new Money(depositAmount));
52 }
53 public void closeAccount()
54 {
55 balance.dollars = 0;
56 balance.cents = 0;
57 }
58 }
Notice that the outer class has access
to the private instance variables of the
inner class.
This class would normally have more methods, but we have only included the methods we need
to illustrate the points covered here.
 
Search WWH ::




Custom Search