Value added to array is NULL?

In my code below, I am experiencing a problem I am unable to get around... when I add a class Person object to an array, it appears to add fine, however when I attempt to print out that object value form a specified array position, it outputs "null."

Here is the code

import java.util.Scanner;
import java.util.Arrays;
import java.lang.String;

public class Main
{
    public static void main(String[] args)
    {
        int ARRAY_LENGTH = 2;

        Scanner in = new Scanner(System.in);
        Person[] Persons;

        Persons = new Person[ARRAY_LENGTH];

        for (int i = 0; i < ARRAY_LENGTH; i++)
        {
            System.out.println("Enter a name to add to the array: ");
            Persons[i] = new Person(in.next());
            System.out.println(Persons[i]);
        }

        Arrays.sort(Persons);

        for (int i = 0; i < ARRAY_LENGTH; i++)
        {
            System.out.println(Persons[i]);
        }
    }
}

&

public class Person implements Comparable<Person>
{
    private String name;

    public Person (String aName)
    {
        String name = aName;
    }

    public String getName()
    {
        return name;
    }

    public int compareTo(Person o)
    {
        Person other = (Person) o;
        if (this.name.equals(o.name))
        {
            return 0;
        }
        if (this.name.compareTo(o.name) < 0)
        {
            return -1;
        }
        return 1;
    }

    @Override
    public String toString()
    {
        return name;
    }
}
Jon Skeet
people
quotationmark

No, it hasn't added null to the array. It's put a reference to a Person object in the array, and when you call toString() on that Person object, it's returning the value of the name field... which is always null, because of this constructor:

public Person (String aName)
{
    String name = aName;
}

That isn't assigning a value to the name field - it's declaring a local variable called name. (I'd expect a decent IDE to issue a warning about that.)

You want:

public Person (String aName)
{
    name = aName;
}

people

See more on this question at Stackoverflow