Consider the compiler parsing this definition. When it encounters Test1, it does not yet know that it is processing the definition of a method of Test. If it did, it would check Test for the Test1 class. Since it doesn't, it does not know how to resolve the symbol.
Similarlly, yet differently, the parameter Test1 is read after the compiler knows that it is processing a method of Test. Since it does, it checks Test for a Test1. There is much more to the process than that but this explanation should shed some light on what's going on.