Class Definition Java Tutorial

/*
 *     file: StaticOrderDemo.java
 *  package: oreilly.hcj.review
 *
 * This software is granted under the terms of the Common Public License,
 * CPL, which may be found at the following URL:
 * http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm
 *
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.
 * All Rights are Reserved by the various authors.
 *
########## DO NOT EDIT ABOVE THIS LINE ########## */
import java.util.Arrays;
/**  
 * Demonstrates the pitfalls of depending on the order of static initializers.
 *
 * @author Robert Simmons jr. (kraythe)
 * @version $Revision: 1.3 $
 */
public class StaticOrderDemo {
  static {
    Class cl = Values.class;
    System.out.println("Class " + cl.getName() + " Loaded");
  }
  /** 
   * Creates a new instance of StaticOrderDemo
   */
  public StaticOrderDemo() {
  }
  /** 
   * The main demo method.  Used only to start the virtual machine.
   *
   * @param args Arguments passed.
   */
  public static final void main(final String[] args) {
  }
  // --- Inner Classes --
  /**  
   * Holds ranges for the values.
   *
   * @author Robert Simmons jr. (kraythe)
   * @version $Revision: 1.3 $
   */
  public static class Ranges {
    /** Bluw range */
    public static final String[] RANGE_BLUE = { "Sky", "Navy" };
    /** Red range */
    public static final String[] RANGE_RED = { "Light", "Dark" };
    static {
      System.out.println("static{} method for Ranges");
      System.out.println(Arrays.asList(RANGE_BLUE));
      System.out.println(Values.VALUE_SPECIFIER);
      System.out.println(Arrays.asList(RANGE_RED));
    }
  }
  /**  
   * Holds values.
   *
   * @author Robert Simmons jr. (kraythe)
   * @version $Revision: 1.3 $
   */
  public static class Values {
    /** A value holder */
    public static final String VALUE = "Blue";
    /** A specifier for the value */
    public static final String VALUE_SPECIFIER;
    static {
      System.out.println("static{} method for Values");
      System.out.println(VALUE);
      System.out.println(Ranges.RANGE_BLUE);
      VALUE_SPECIFIER = Ranges.RANGE_BLUE[1];
    }
  }
}
/* ########## End of File ########## */