====== The Fibonacci Example ====== As a base for the illustrations presented later in this chapter, we will use a simple utility class able to calculate fibonacci numbers. The [[http://reflex.dcc.uchile.cl/svn/base/trunk/src/reflex/examples/fibonacci/app/Fibonacci.java|code]] of the class is: public class Fibonacci{ public Fibonacci(){ } public long get(int n){ if (n == 0 || n == 1){ return (long) n; } return get(n - 1) + get(n - 2); } public static void main(String[] args){ if (args.length == 0){ System.out.println("Please specify which fibonacci number should be calculated."); System.exit(0); } int theN = Integer.parseInt(args[0]); long theFibonacciNumber = new Fibonacci().get(theN); System.out.println("The fibonacci[" + theN + "] is " + theFibonacciNumber); System.out.println(); long theFibonacciNumberPlusOne = new Fibonacci().get(theN + 1); System.out.println("The fibonacci[" + (theN + 1) + "] is " + theFibonacciNumberPlusOne); } } This piece of code is pretty straightforward to read: there is one empty constructor to obtain Fibonacci objects references and one unique method to calculate a fibonacci number based on the parameter that represents the one we are interested on.