<< Chapter < Page | Chapter >> Page > |
A. Compiler Error
Public classes in separate files
Java requires that the source code for every public class be contained in a separate file. In this case, the source code for two public classes wascontained in a single file. The following compiler error was produced by JDK 1.3:
Ap155.java:18: class Ap155a is public, should be declared in a file
named Ap155a.javapublic class Ap155a{
This program produces both of the following:
The NoSuchElementException
This program defines, creates, and uses a very simple container object for the purpose of illustrating the NoSuchElementException .
The code in the following fragment shows the beginning of a class named MyContainer from which the container object is instantiated.
class MyContainer{
private int[]array = new int[3];public void put(int idx, int data){if(idx>(array.length-1)){
throw newNoSuchElementException();
}else{array[idx] = data;}//end else
}//end put()
A wrapper for an array object
This class is essentially a wrapper for a simple array object of type int . An object of the class provides a method named put , which can be used to store an int value into the array. The put method receives two parameters. The first parameter specifies the index of the elementwhere the value of the second parameter is to be stored.
Throw NoSuchElementException on index out of bounds
The put method tests to confirm that the specified index is within the positive bounds of the array. If not, it uses the throw keyword to throw an exception of the type NoSuchElementException . Otherwise, it stores the incoming data value in the specified index position in the array.
(Note that a negative index will cause an ArrayIndexOutOfBoundsException instead of a NoSuchElementException to be thrown.)
The get method
An object of the MyContainer class also provides a get method that can be used to retrieve the value stored in a specified index.
public int get(int idx){
if(idx>(array.length-1)){
throw newNoSuchElementException();
}else{return array[idx];}//end else
}//end put()
The get method also tests to confirm that the specified index is within the positive bounds of the array. If not, it throws an exceptionof the type NoSuchElementException . Otherwise, it returns the value stored in the specified index of the array.
(As noted earlier, a negative index will cause an ArrayIndexOutOfBoundsException instead of a NoSuchElementException to bethrown.)
The NoSuchElementException
Thus, this container class illustrates the general intended purpose of the NoSuchElementException .
Instantiate and populate a container
The remainder of the program simply exercises the container. The code in the following fragment instantiates a new container, and uses the put method to populate each of its three available elements with the values 5, 10,and 15.
void doIt(){
MyContainer ref =new MyContainer();
ref.put(0,5);ref.put(1,10);
ref.put(2,15);
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?