<< Chapter < Page | Chapter >> Page > |
java.lang.NullPointerException
at Worker.doArrays(Ap057.java:14)at Ap057.main(Ap057.java:6)
This is a common programming error, and most Java programmers have seen an error message involving a NullPointerException several (perhaps many) times during their programming careers.
C. OK
Success at last
This program finally gets it all together and works properly. In particular, after accessing the reference values stored in each of the elements, the programdoes something legal with those values.
Call methods on the object's references
In this case, the code calls one of the public methods belonging to the objects referred to by the reference values stored in the array elements.
System.out.println(A[0].getText() + A[1].getText());
The getText method that is called, returns the contents of the Label object as type String . This makes it possible to perform String concatenation on the values returned by the method, so the program compiles and executes properly.
A. Compiler Error
Java arrays may seem different to you
For all types other than the primitive types, you may find the use of arrays in Java to be considerably different from what you are accustomed to in otherprogramming languages. There are a few things that you should remember.
Array elements may contain default values
If the declared type of an array is one of the primitive types, the elements of the array contain values of the declared type. If you have not initializedthose elements or have not assigned specific values to the elements, they will contain default values.
The default values
You need to know that:
Arrays of references
If the declared type for the array is not one of the primitive types, the elements in the array are actually reference variables. Objects are neverstored directly in a Java array. Only references to objects are stored in a Java array.
If the array type is the name of a class ...
If the declared type is the name of a class, references to objects of that class or any subclass of that class can be stored in the elements of the array.
If the array type is the name of an interface ...
If the declared type is the name of an interface, references to objects of any class that implements the interface, or references to objects of anysubclass of a class that implements the interface can be stored in the elements of the array.
Why did this program fail to compile?
Now back to the program at hand. Why did this program fail to compile? To begin with, this array was not designed to store any of the primitive types.Rather, this array was designed to store references to objects instantiated from the class named Label , as indicated in the following fragment.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?