<< Chapter < Page Chapter >> Page >

A type-generic array object

All classes in Java are subclasses of the class named Object . This program creates an array object with the declared type being type Object . An array of type Object can be used to store references to objects instantiated from any class.

After creating the array object, this program instantiates three objects of the class String and stores those object's references in the elements of the array. (As I pointed out in the comments, there is a simpler and better way to instantiate String objects, but it wouldn't illustrate my point as well as doing the way that I did.)

Sometimes you need to downcast

Although an array of type Object can be used to store references to objects of any type (including mixed types and references to other array objects) , you will sometimes need to downcast those references back to their true type once you extract them from the array andattempt to use them for some purpose.

Polymorphic behavior applies here

For this case, however, because the toString method is defined in the Object class and overridden in the String class, polymorphic behavior applies and it is not necessary to downcast the references to type String in order to be able to convert them to strings and display them.

Back to Question 11

Answer 10

C. 0 0 10 2 4

Explanation 10

Defer size specification for secondary arrays

It is not necessary to specify the sizes of the secondary arrays when you create a multi-dimensional array in Java. Rather, since the elements in theprimary array simply contain references to other array objects (or null by default) , you can defer the creation of those secondary array objects until later.

Independent array objects

When you do finally create the secondary arrays, they are essentially independent array objects (except for the requirement for type commonality among them) .

Ragged arrays

Each individual secondary array can be of any size, and this leads to the concept of a ragged array . (On a two-dimensional basis, a ragged array might be thought of as a two-dimensional array where each row can have a different numberof columns.)

This program creates, populates, and displays the contents of such a two-dimensional ragged array. Although this program creates a two-dimensionalarray that is triangular in shape, even that is not a requirement. The number of elements in each of the secondary arrays need have no relationship to the numberof elements in any of the other secondary arrays.

Back to Question 10

Answer 9

B. Runtime Error

Explanation 9

NullPointerException

The following code fragment shows that this program attempts to perform an illegal operation on the value accessed from the array object at index 1.

Integer[] A = new Integer[2]; A[0]= new Integer(1); System.out.println(A[1].intValue());

You can't call methods on null references

The reference value that was returned by accessing A[1] is the default value of null. This is the value that was deposited in the element when the array object was created (no other value was ever stored there) . When an attempt was made to call the intValue method on that reference value, the following runtime error occurred

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