You can read about CLASSPATH
here. Yes, constructors can be private. Only code within the class can use such a constructor, of course, but sometimes this is handy -- for example, if you need to create a
Singleton class. If the interface is named Foo, then name the file Foo.java , just as you would do for a class.