<< Chapter < Page Chapter >> Page >

The screen output

Listing 1 shows the instantiation of a new object of class B, immediately following the instantiation of an object of class A.

The object instantiated from the member class named B is linked to the objectinstantiated from the top-level class named A.

The constructors for the classes named A and B produce the two lines of output shown in Figure 3 , the first of which is a repeat of the output shown in Figure 2 .

The method named bShow

The class named B also defines a private method named bShow . As with the method named aShow mentioned earlier, I will defer a discussion of bShow until later when it is called.

The member class named C

Listing 7 shows the beginning of a member class named C.

Class C is a member of the class named B. In other words, the beginning of the definition of the class named C begins before the curly brace thatends the definition of the class named B.

The code in Listing 7 declares several instance variables for the class named C, and initializes two ofthem. The purpose of these variables will become clear later when they are used.

(Note also that class C extends class X, in order to illustrate that the class containment hierarchy is independent of the inheritance hierarchy.)

Constructor for class C

Listing 8 shows the beginning of the constructor for the class named C.

Whenever an object of the class named C is instantiated, the constructor code shown in Listing 8 does the following:

  • Saves the value of an incoming parameter in a private instance variable named cVar .
  • Increments the object counter named objCntC , which is a class variable of the class named A, maintaining a count of objects instantiatedfrom class C.
  • Saves the value of the object counter in an instance variable named objNumber to identify the specific object.
  • Displays a message showing the identification of the object being instantiated.

Screen output

Listing 1 shows the instantiation of a new object of class C, immediately following the instantiation of an object of class B.

The object instantiated from the member class named C is linked to the objectinstantiated from the member class named B. Similarly, the object instantiated from the member class named B is linked to the object instantiated from thetop-level class named A.

The constructors for the classes named A, B, and C produce the three lines of output shown in Figure 4 , the first two of which are repeated from Figures 2 and Figure 3 .

The output shown in Figure 4 demonstrates that the code in Listing 1 causes the constructors for the three classes to be executed in sequence.

At this point, I am going to put the discussion of the class named C on hold and discuss another member class named D.

The private member class named D

Top-level classes cannot be private. However, member classes can be private provided that the using code is consistent with theuse of private members. To demonstrate this, the class named C contains a private member class named D, which is shown in its entirety in Listing 9 .

The most significant thing about the class named D is that it is declared private.

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