Assuming that there is a class called PersonName as per the lectures, 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(PersonName theName)
   {  PersonName name = theName;
   }

   public PersonName getName()
   {  return name;
   }

   private PersonName name;
}

public class Two
{
   public static void main(String[] args)
   {  PersonName p = new PersonName("Ms", "Barb", "Dwyer");
      One obj = new One(p);
      System.out.println(obj.getName().getFullName());
   }
}
(a) The program doesn't compile.
(b) It compiles and, when run, displays Ms Barb Dwyer
(c) It compiles but, when run, displays a reference (a pointer/address).
(d) It compiles but, when run, gives a null pointer exception.

Select the most appropriate answer.