<< Chapter < Page | Chapter >> Page > |
This program illustrates default initialization of int , double , and boolean arrays.
The default values are as follows:
An array with no elements ...
This program also illustrates that it is possible to have an array object in Java that has no elements. In this case, the value of the length property for the array object is 0.
Give me an example
For example, when the user doesn't enter any arguments on the command line for a Java application, the incoming String array parameter to the main method has a length value of 0.
Another example
It is also possible that methods that return a reference to an array object may sometimes return a reference to an array whose length is 0. The method mustsatisfy the return type requirement by returning a reference to an array object. Sometimes, there is no data to be used to populate the array, so the method willsimply return a reference to an array object with a length property value of 0.
A. Compiler Error
Assigning array reference to type Object
As you learned in an earlier module, you can assign an array object's reference to an ordinary reference variable of the type Object . It is not necessary to indicate that the reference variable is a reference to anarray by appending square brackets to the type name or the variable name.
Only works with type Object
However, you cannot assign an array object's reference to an ordinary reference variable of any other type. For any type other than Object , the reference variable must be declared to hold a reference to an array objectby appending empty square brackets onto the type name or the variable name.
The first statement in the following fragment compiles successfully.
Object X = A;
Superclass B = A;
However, the second statement in the above fragment produces a compiler error under JDK 1.3, which is partially reproduced below.
Ap077.java:22: incompatible types
found : Subclass[]required: Superclass
Superclass B = A;
Both Superclass and Object are superclasses of the array type referred to by the reference variable named A . However, because of theabove rule, in order to cause this program to compile successfully, you would need to modify it as shown below by adding the requisite empty square bracketsto the Superclass type name.
Object X = A;
Superclass[]B = A;
C. 0 0 0
0 1 2
Syntactical ugliness
As I indicated in an earlier module, when declaring a reference variable that will refer to an array object, you can place the empty square brackets next tothe name of the type or next to the name of the reference variable. In other words, either of the following formats will work.
int[][]A;
int B[][];
What I may not have told you at that time is that you can place some of the empty square brackets in one location and the remainder in the other location.
Really ugly syntax
This is indicated by the following fragment, which declares a reference variable for a two-dimensional array of type int . Then it creates the two-dimensional array object and assigns the array object'sreference to the reference variable.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?