Единственный раз, когда class
должен быть закрытым или "скрытым", это когда он является внутренним классом.Если вы пытаетесь удержать других от использования ресурсов ваших классов, вы можете оставить модификатор выключенным (частным, общедоступным, защищенным), что сделает пакет класса защищенным (по умолчанию, когда модификатор отсутствует).
Например, этот класс могут видеть только классы в одном пакете:
package com.test;
class Test {
}
Где этот класс будет доступен вне пакета:
package com.test;
public class Test {
}
Однако,в этом сценарии другой человек может использовать имя пакета com.test и может использовать ваш класс.
Если вы хотите жестко контролировать использование классов, вы можете пометить их какpublic final
.Это сделает так, что ваш класс не может быть расширен.Затем вы можете сделать конструктор частным, чтобы класс не мог быть создан.Если вы сделаете это, вам, скорее всего, понадобятся static
методы, которые возвращают новые объекты класса, с которым вы имеете дело.
Если вы намереваетесь распределить банку, вам просто придется иметь дело с этим.Но есть много вариантов (как описано выше), которые помогут вам создать полезную библиотеку кода.