<< Chapter < Page Chapter >> Page >

The local class named B

The next block of code in the method named meth is the definition of a local class named B . The beginning of the class definition for local class B is shown in Listing 9 .

As with local variables, the class definition for a local class must appear before the code that attempts to instantiate the class. Code in the method named meth following the local class definition will instantiate and exercise objects of class B .

Local class B extends top-level class Y . This was done to illustrate that the inheritance hierarchy is independent of thecontainment hierarchy.

The constructor

The code in Listing 9 declares a private instance variable named bTime , which is used to store the relative time that an object of class B is constructed.

Listing 9 also shows the constructor for local class B , which establishes, saves, and then displays the relative time that that an object is instantiated.

(I will show you the screen output produced by this constructor shortly as I discuss codethat instantiates objects of this class.)

Instantiate two objects of class B

At this point, I am going to temporarily set aside the discussion of local class B and discuss code in the method named meth that immediately follows the definition of local class B . This code is shown in Listing 10 .

Listing 10 shows the beginning of code that is called when the method named meth is called. This code begins by instantiating two objects from the class named B , with a delay inserted between the instantiation of the two objects.

The screen output

The code in Listing 10 , in conjunction with the constructor code in Listing 9 produces the screen output shown in Figure 4 as each of the two objects of local class B are instantiated.

Call showB on the first object

Following this, the code in the method named meth calls the method named showB on each of the two objects. The method named showB will, in turn, call the method named showA on the containing object instantiated from the class named A . The third line of code in Listing 11 calls the method named showB on the first object instantiated in Listing 10 .

The method named showB

That brings us back to a discussion of the method named showB , which is an instance method of local class B . The beginning of the showB method is shown in Listing 12 . This method displays several private and protected variables, some of which belong to thecontaining object instantiated from the top-level class named A .

(Note that code in this method has direct access to xVar , which is a protected member variable of the superclass of the class named A .)

Items that are displayed

The code in Listing 12 displays

  • A visual line separator, -1-
  • A private instance variable, bTime , belonging to the object instantiated from local class B
  • A private instance variable, aTime , belonging to the containing object instantiated from the top-level class A
  • A final local variable, methTime , belonging to the method named meth , in which the local class B is defined
  • A protected instance variable, xVar , of the superclass of the class A , from which the containing object was instantiated.
  • A protected instance variable, yVar , of the superclass of the local class B
  • The name of the class file that represents the local class B

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