Странный вопрос, ну да ладно. Смотри. class {} , access modifier = (private ,protected, default(none), public) . Пабликом ты говоришь, что класс доступен из других пакетов, при этом конструктор может быть паблик, а у класса стоять просто class. Но в этом не будет смысла, так как ты не сможешь использовать этот класс в другом пакете , так как модификатор доступа у тебя package-private у класса.
Модификатор конструктора ,по-сути в твоем случае, просто ограничивает область , где ты можешь инициализировать этот класс. А модификатор класса, где будет доступен твой класс.
К примеру
package1;
public class Animal {
Animal(){}
}
public static void gav(){
}
}
package2;
public class ZooPark{
public void main(String[] args) {
Animal animal = new Animal(); // ошибка здесь, конструктор не доступен т.к. package-private
Animal.gav(); //- ок , класс доступен, статик тоже доступен. ps статик метод тоже публичный
}
}