2012-05-08 4 views
3
  1. У меня есть класс (1), имеющий некоторые конструкторы (arg и args). В другом классе (2) объект класса 1 создается с использованием нового конструктора(). Так будет вызван главный метод в этом случае?Когда вызывается основной метод java?

  2. В идеале, когда основной метод называется в любом классе?

+0

Примечание: main является статическим и не требует сначала «нового» объекта. –

ответ

6

main статический метод, точка входа для программы, и называется раз (если явно не называть), при запуске программы, а не для каждой инициализации объекта.

0

при запуске вашего класса2 (должен содержать main метод), main метод будет называться.

0

Ваш метод main будет вызван тем, что не находится внутри вашей программы, и будет вызываться один раз, чтобы запустить вашу программу. Посмотрите here для получения дополнительной информации. Что касается места, где вы должны поместить его, нет никаких реальных ограничений на его местоположение.

5

Метод main вызывается только в двух ситуациях:

  1. виртуальной машины Java для запуска приложения
  2. другим способом (возможно, в другом классе), вызывая метод main, хотя в то время как это правильная Java не является лучшей практикой

main не будет автоматически вызван для создания экземпляра класса - в качестве статического метода его охватывающий класс даже не нужен быть создан для того, чтобы он мог быть вызван.

Методы конструктора, с другой стороны : вызывается при создании класса.

+0

Отличный ответ! Я думаю, что ваш гораздо яснее моего. – Ewald

+0

Спасибо, Rich, я получил мои сомнения очищены – iAmSavy

3

Любой класс может иметь основной метод. Например, классы Class (1) и Class (2) могут иметь основной метод, но только один из них будет вызываться один раз при запуске вашей программы.

Когда вы запускаете программу, например, java class1, вы говорите Java, что хотите начать игру с помощью основного метода класса (1). Это может сбивать с толку, так как вы думаете, что Java выполнит каждый основной метод, который он найдет, но это не тот случай. Когда Java найдет и запустит основной метод в указанном вами классе, он будет игнорировать все будущие методы main(), которые он может найти, поскольку он уже выполнил основной метод для вашей программы.

Вы можете думать о main() как о двери, ведущей в вашу программу, когда-то, компьютер не будет пытаться войти снова, это уже в программе! Надеюсь, это поможет вам немного.

+0

Nice. Мне понравилась концепция двери. – iAmSavy

+0

Спасибо - это единственный способ, которым я могу это понять. Забавно, как можно забыть, какую борьбу некоторые из этих концепций были много лет назад! Приятно видеть, что так много людей помогают друг другу здесь. – Ewald