What is the effect of attempting to compile and run this Java program that consists of two class definitions in separate files:
public class One
{
   public One()
   {  letter = DEFAULT_LETTER;
   }

   public One(char aLetter)
   {  letter = aLetter;
   }

   public static void printLine(int n)
   {  for (int i = 0; i < n; i++)
      {  System.out.print(letter);
      }
   }

   private char letter;
   private static final char DEFAULT_LETTER = 'a';
}

public class Two
{
   public static void main(String[] args)
   {  One o1 = new One('b');
      o1.printLine(10);
      System.out.println();
      One o2 = new One();
      o2.printLine(10);
      System.out.println();
   }
}
(a) The program compiles and, when run, prints two rows of 10 'b's.
(b) It compiles and, when run, it prints a row of 10 'a's then a row of 10 'b's.
(c) It compiles and, when run, it prints a row of 10 'b's and then a row of 10 'a's.
(d) It compiles but, when run, gives a run-time error.
(e) It doesn't compile.

Select the most appropriate answer.