There is a "namespace" conflict. The system needs to have a unique name for each class that it is working with. If two Classes have the same name the system can not properly keep track of which one each object is.
class Test{
class Test{ }
public static void main(
String[] args]{
Test t1 = new Test(); // this is an object of type Test
Test t2 = new t1.Test(); //this is an object of type Test
}
}