Дело в том, что в материале который я изучаю, когда дошло до модификаторов доступа, то описание коснулось только модификаторов доступа членов класса(переменных и методов). Но я часто вижу конструкции где возле имени класса стоит модификатор доступа publicвот например public class Foo { }. Еще я иногда вижу когда создается класс без модификатора public но в конструкторе он присутствует:
class Foo {
public Foo () {}
}
В чем разница между public class и class по умолчанию?
Класс без модификатора доступа по-умолчанию является package-private (доступные только внутри пакета, в котором объявлены).
public делает класс доступным откуда угодно.
Почитайте тут: Controlling Access to Members of a Class
Если кратко, то Public делает твой class доступным из любого пакета.
Продвижение своими сайтами как стратегия роста и независимости