Problemas con una instancia en java

Soy nuevo en java y utilizo bluej...
La cosa es que tengo dos clases, materia y academia.
Cada una de ellas tendra varias instancias (materia1, materia2...)(academia1, academia2...)
Lo que quiero es que cada vez que se cree una instancia de la clase materia, automáticamente se añada un valor en un array de la instancia academia1 con lo cual pienso que el mejor sitio para poner el código "que sea" sera el constructor de la clase materia.
Probé varias cosas y ninguna funciono, no me compila por lo de academia1, el mensaje que me da bluej es: "cannot find symbol-variable materia1"
Como lo que quiero es que se haga automáticamente descarte, en un primer lugar, realizarlo por un método, pero tampoco...
Luego pensé en crear el método y llamarlo en el constructor,
Pero nuevamente no compila por lo de academia1
Si utilizara el método:

private Academia academia;
....
public Materia()
{
academia=new Academia();
.....
}
.....
public void IngresaAcademia (Academia academia)
{
academia.Ingresa_Valor("lo que sea");
}

Estaría obligado de alguna manera de introducir academia1 para que se realizara la acción, y eso es exactamente lo que deseo evitar...
¿Hay alguna forma de hacer que compile una expresión parecida a esta:?

academia=academia1;(esta seria la instancia a la que deseo agregar "lo que sea")

Añade tu respuesta

Haz clic para o