Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Классы в разных файлах или в одном?


Автор: Shorr Kan 28.1.2004, 08:47
Правильно ли я понимаю, что писать код в одном файле (все классы в одном файле) можно только используя awt? Если же использовать swing, то классы должны быть в разных файлах. Правильно?

Автор: AntonSaburov 28.1.2004, 10:05
Нет. Классов в одном файле можно создавать сколько угодно. Есть только несколько ограничений. Например:

1. Только один класс "на верхнем уровне" может быть public, т.е. для стороннего пользователя компонентами будет виден только этот класс из файла. Т.е. запись типа такой невозможна.

Код

public class A
...
public class B
...


2. Такое ограничение можно обойти, если объявить класс как вложенный в основной и сделать объявление как статик. Например:

Код

public class My
{
   public static class My1
   {
       public My1()
       {
       }
       public void showHello()
       {
           System.out.println("Hello, My1");
       }
   }
   public class My2
   {
       public My2()
       {
       }
       public void showHello()
       {
           System.out.println("Hello, My2");
       }
   }
   public My2 getMy2()
   {
       return new My2();
   }
}


Теперь в каком-нибудь другом пакете можно использовать классы My1 и My2 следующим образом:

Код

public class Your
{
   public static void main(String[] args)
   {
       My.My1 a1 = new My.My1();
       a1.showHello();

       My a = new My();
       My.My2 a2 = a.getMy2();
       a2.showHello();
   }
}


Можно обратит внимание на разные способы создания классов My1 и My2

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)