Java Programming: A more comprehensive example

Posted on Jan 29, 2011 by celax

// OddEven.
import javax.swing.JOptionPane;

public class OddEven {
// "input" is the number that the user gives to the computer
private int input; // a whole number("int" means integer)

* This is the constructor method. It gets called when an object of the OddEven type
* is being created.
public OddEven() {
* In most programs constructors can initialize objects with default values, or create
* other objects that this object might use to perform its functions. In some programs, the
* constructor may simply be an empty function if nothing needs to be initialized prior to the
* functioning of the object. In this program's case, an empty constructor would suffice, even if
* it is empty. A constructor must exist, however if the user doesn't put one in then the compiler
* will create an empty one.

// This is the main method. It gets called when this class is run through a interpreter.
public static void main(String[] args) {
* This line of code creates a new instance of this class called "number" (also known as an
* Object) and initializes it by calling the constructor. The next line of code calls
* the "showDialog()" method, which brings up a prompt to ask you for a number
OddEven number = new OddEven();

public void showDialog() {
* "try" makes sure nothing goes wrong. If something does,
* the interpreter skips to "catch" to see what it should do.
try {
* The code below brings up a JOptionPane, which is a dialog box
* The String returned by the "showInputDialog()" method is converted into
* an integer, making the program treat it as a number instead of a word.
* After that, this method calls a second method, calculate() that will
* display either "Even" or "Odd."
input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number"));
} catch (NumberFormatException e) {
* Getting in the catch block means that there was a problem with the format of
* the number. Probably some letters were typed in instead of a number.
System.err.println("ERROR: Invalid input. Please type in a numerical value.");

* When this gets called, it sends a message to the interpreter.
* The interpreter usually shows it on the command prompt (For Windows users)
* or the terminal (For Linux users).(Assuming it's open)
private void calculate() {
if (input % 2 == 0) {
} else {

    • * The import statement imports the JOptionPane class from the javax.swing package.
      * The OddEven class declares a single private field of type int named input. Every instance of the OddEven class has its own copy of the input field. The private declaration means that no other class can access (read or write) the input field.
      * OddEven() is a public constructor. Constructors have the same name as the enclosing class they are declared in, and unlike a method, have no return type. A constructor is used to initialize an object that is a newly created instance of the class.
      * The calculate() method is declared without the static keyword. This means that the method is invoked using a specific instance of the OddEven class. (The reference used to invoke the method is passed as an undeclared parameter of type OddEven named this.) The method tests the expression input % 2 == 0 using the if keyword to see if the remainder of dividing the input field belonging to the instance of the class by two is zero. If this expression is true, then it prints Even; if this expression is false it prints Odd. (The input field can be equivalently accessed as this.input, which explicitly uses the undeclared this parameter.)
      * OddEven number = new OddEven(); declares a local object reference variable in the main method named number. This variable can hold a reference to an object of type OddEven. The declaration initializes number by first creating an instance of the OddEven class, using the new keyword and the OddEven() constructor, and then assigning this instance to the variable.
      * The statement number.showDialog(); calls the calculate method. The instance of OddEven object referenced by the number local variable is used to invoke the method and passed as the undeclared this parameter to the calculate method.
      * input = Integer.parseInt(JOptionPane.showInputDialog(“Please Enter A Number”)); is a statement that converts the type of String to the primitive data type int by using a utility function in the primitive wrapper class Integer.