<< Chapter < Page Chapter >> Page >

The print statements produce the following output on the computer screen:

Array05@73d6a5 [I@111f715

Default textual representation of ordinary object

The first line of output is the default textual representation of the ordinary object, achieved by calling the default toString method on the reference to the ordinary object.

Default textual representation of array object

The second line of output is the textual representation of the array object of type int[] , achieved by calling the default toString method on the reference to the array object.

Primitive value stored in array object

The third line of text is the value stored in element index 4 of the int[] array object whose reference is stored in element index 1 of the array object ofelement type Object .

Primitive versus non-primitive array element contents

References to objects are stored in the elements of non-primitive array objects. The objects themselves exist somewhere else in memory.

Actual primitive values are stored in the elements of a primitive array object.

Thus, the elements of an array object contain actual primitive values, null references, or actual references to ordinary or array objects,depending on the type of the elements of the array object.

Summary

This module begins the discussion of array objects in Java.

The existence of array objects tends to complicate the OOP structure of a Java program otherwise consisting only of ordinary objects.

A completely different syntax is required to create array objects than the syntax normally used to instantiate ordinary objects. Ordinary objects arenormally instantiated by applying the new operator to the constructor for the target class passing parameters between a pair of matching parentheses.

Array objects (with default initialization) are created using the new operator, the type of data to be encapsulated in the array, and a square-bracket notation to specify the length of the array encapsulated in the object.

Array objects with explicit initialization are created using a comma-separated list of expressions enclosed in curly brackets.

Arrays in Java are objects, which are dynamically created and allocated to dynamic memory.

Like ordinary objects, array objects are accessed via references. The type of such a reference is considered to be TypeName[] (note the empty square brackets in the type specification).

A reference to an array object can also be assigned to a reference variable of type Object (note the absence of square brackets). Thus, any of the methods of the Object class can be called on a reference to an array object.

As is the case with other languages that support arrays, array objects in Java encapsulate a group of zero or more variables. The variables encapsulatedin an array object don't have individual names. Rather, they are accessed using positive integer index values.

The integer indices of a Java array object always extend from 0 to (n-1) where n is the length of the array object.

As of the time of this writing, all array objects in Java encapsulate one-dimensional arrays. However, the component type of an array may itself be anarray type. This makes it possible to create array objects whose individual components refer to other array objects. This is the mechanism for creating multi-dimensional or ragged arrays in Java.

The reference to any array object can be assigned to reference variables of the types Object , Cloneable , or Serializable . If the element type of an array object is one of these types, the elements in the arraycan refer to:

  • Other array objects
  • Ordinary objects
  • A mixture of the two

What's next?

This module has barely scratched the surface in explaining how array objects fit into the grand scheme of things in OOP using Java. In the next module, Iwill continue the discussion, showing you some of the (often complex) aspects of using Java array objects to emulate traditional multi-dimensional arrays. I will also show you how to create ragged arrays in Java.

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Java OOP: Array Objects, Part 1
  • File: Java1622.htm
  • Published: 05/15/02
Disclaimers:

Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.

I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.

In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.

Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.

Complete program listing

A complete listing of the program is shown in Listing 9 below.

Listing 9 . Complete program listing.
/*File Array05.java Copyright 2002, R.G.BaldwinThis program illustrates storage of references to ordinary objects andreferences to array objects in the same array object of type Object.Program output is: Array05@73d6a5[I@111f71 5**************************************/ public class Array05{public static void main( String[]args){ int[]v1 = {1,2,3,4,5}; Object[]v2 = new Object[2];v2[0] = new Array05();v2[1] = v1;System.out.println(v2[0]);System.out.println(v2[1]);System.out.println( ((int[])v2[1])[4]); }//end main}//end class Array05

-end-

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