Dos objetos recién creados parecen referirse a la misma dirección

Estoy programando en Java solo durante unos meses, así que no tengo tanta experiencia con Java (algunos trucos y las cosas básicas que debería saber).

Tengo un problema que puede ser obvio pero no lo veo.

public class SomeClass {
   private final int[] numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

   private LabelText AText = new LabelText('A', numbers);
   private LabelText BText = new LabelText('B', numbers);

   public void foo() {
       AText.numbers[6] = -1;
       BText.numbers[3] = -1;
       if (BText.numbers[6] == -1) System.out.println("Wtf?");
   }
}

Este es un extracto de mi código.

¿Cómo puede ser esto cierto? Estos son dos objetos separados. No lo entiendo.

El método foo se llama directamente en mi método principal (para fines de prueba).

Si necesita el constructor de LabelText, aquí está:

public class LabelText {

   private final char letter;
   public int[] numbers;

   public LabelText(char letter, int[] numbers) {
       this.letter = letter;
       this.numbers = numbers;
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta