Почему два открытых класса не могут быть определены в одном файле в Java? [Дубликат]

На этот вопрос уже есть ответ здесь:

Почему каждый публичный класс находится в отдельном файле? 12 ответов

Почему класс B можетстать публичным? Как я могу использовать класс в других классах? Это лучше определить внутри минусов?

   //    public class B { why not?

   class B {
        int x;  
        B (int n) {
            x=n;
            System.out.println("constructor 'B (int n)' called!");
        }
    }

    public class Cons { 
        public static void main(String[] args) {B b = new B();}
    }
 Naresh Joshi04 дек. 2017 г., 05:53
Причина сохранения одного общедоступного класса на исходный файл заключается в том, чтобы на самом деле ускорить процесс компиляции и поиска классов, поскольку он обеспечивает более эффективный поиск исходных и скомпилированных файлов во время компоновки (операторы импорта), подробнее оprogrammingmitra.blogspot.in/2016/05/...

Ответы на вопрос(3)

Решение Вопроса

в файле может быть только один открытый класс (.java), и имя файла должно совпадать с именем открытого класса.

Если вы хотите, чтобы класс B был доступен на других площадках, вы можете создать отдельный файл B.java и перенести код класса B в этот файл.

этонить может дать вам больше информации.

Q. Почему можноt два открытых класса должны быть определены в одной области видимости в Java?

A. Просто так, как язык разработан. Как только вы привыкнете к этому, выВы найдете, что это поможет вам организовать ваш код.

Q. Почему класс B можетстать публичным?

A. Может, но это должно быть в файле с именем B.java. И это должен быть единственный публичный класс в этом файле.

Q. Как я могу использовать класс в других классах?

A. Вы можете перефразировать вопрос. Но есть несколько подходов:

Сделайте класс общедоступным, создайте его экземпляр и вызовите для него методы.Добавить класс в тот же файл, нене делать это публично (ты выигралне может), создать его экземпляр и вызвать методы для него. Вы'Вы сможете использовать его из других классов в том же файле или пакете. Это "дефолт" модификатор доступа, и это означает, что выЯ смогу создать экземпляр этого класса из других классов в том же пакете.Сделайте его внутренним (или вложенным) классом, создайте его экземпляр и вызовите для него методы. Он будет доступен только по имени из родительского класса. Это должно увеличить инкапсуляцию и сделать код более читабельным.http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

Q. Лучше определить это внутри минусов?

A. Я лично неЯ делаю это очень часто. Я считаю, что это делает код немного грязнее, хотя ссылки выше говорят иначе.

 assylias11 нояб. 2012 г., 07:58
вложенный класс также может быть статическим, и в этом случае он может использоваться как отдельный класс.

Поместите ваши классы в разные файлы.

Имя класса должно совпадать с именем файла.

Ваш ответ на вопрос