If you are new to Java I can understand your confusion. It really took me a while to get some grip of different protection levels. It is not anyone elses job to do your homework, but I will give you some links and explanation to start with and hopefully you will feel confident enough to try start coding. :)
Java is both a name-equivalence language and a name-equivalence environment. This means that things with the same name are seen as the same. If you have two classes with the same name but different implementations Java will not be able to tell them apart. In such a case, which class that will be used depends on the order in which the class files are encountered.
If you do not declare that your class belongs to a specific package it will automatically belong to a default unnamed package. Belonging to an unnamed package increases the possibility for classes with equal names to be mixed up. That is a good reason to start using packages already from the beginning. That is also a way to impress ones teacher. :)
Here you can read a bit about naming conventions:
Here you can read about classes and access controll of fields and methods.
A top level class labeled as public is visible to all classes everywhere.
A top level class that has no label is visible only within its own package.
The same options applies to interfaces.
If an interface is labeled as ...