<< Chapter < Page | Chapter >> Page > |
Label[] A = new Label[2];
Elements initialized to null
This is a two-element array. When first created, it contains two elements, each having a default value of null . What this really means is that the reference values stored in each of the two elements don't initially refer toany object.
Populate the array elements
The next fragment creates two instances (objects) of the Label class and assigns those object's references to the two elements in the arrayobject. This is perfectly valid.
A[0] = new Label("O");A[1] = new Label("K");
You cannot add reference values
The problem arises in the next fragment. Rather than dealing with the object's references in an appropriate manner, this fragment attempts toaccess the text values of the two reference variables and concatenate those values.
System.out.println(A[0] + A[1]);
The compiler produces the following error message:
Ap055.java:14: error: bad operand types for binary operator '+'
System.out.println(A[0]+ A[1]);^
first type: Labelsecond type: Label
1 error
This error message is simply telling us that it is not legal to add the values of reference variables.
Not peculiar to arrays
This problem is not peculiar to arrays. You would get a similar error if you attempted to add two reference variables even when they aren't stored in anarray. In this case, the code to access the values of the elements is good. The problem arises when we attempt to do something illegal with those values afterwe access them.
Usually two steps are required
Therefore, except in some special cases such as certain operations involving the wrapper classes, to use Java arrays with types other than the primitive types, whenyou access the value stored in an element of the array (a reference variable) you must perform only those operations on that reference variable that are legalfor an object of that type. That usually involves two steps. The first step accesses the reference to an object. The second step performs some operation onthe object.
C. 3
Once you create an array object for a primitive type in Java, you can treat the elements of the array pretty much as you would treat the elements of anarray in other programming languages. In particular, a statement such the following can be used to assign a value to an indexed element in an arrayreferred to by a reference variable named A .
A[1] = 2;
Similarly, when you reference an indexed element in an expression such as the following, the value stored in the element is used to evaluate the expression.
System.out.println(A[0] + A[1]);
For all Java arrays, you must remember to create the new array object and to store the array object's reference in a reference variable of the correct type. Then you can use the reference variable to gain access to the elements inthe array.
B. Runtime Error
Good fences make good neighbors
One of the great things about an array object in Java is that it knows how to protect its boundaries.
Unlike some other currently popular programming languages, if your program code attempts to access a Java array element outside its boundaries, anexception will be thrown. If your program doesn't catch and handle the exception, the program will be terminated.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?