<< Chapter < Page Chapter >> Page >

Back to Question 6

Answer 5

A. Compiler Error

Explanation 5

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{

Back to Question 5

Answer 4

This program produces both of the following:

  • C. 5 10 15
  • B. Runtime Error

Explanation 4

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);

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