<< 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.

Back to Question 7

Answer 6

C. 3

Explanation 6

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.

Back to Question 6

Answer 5

B. Runtime Error

Explanation 5

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.

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