Примечание:
Это типичный пример того, где использование отладчика значительно поможет вам понять ход выполнения. Если вы не знаете, как использовать отладчик, я рекомендую эти отличные бесплатные видеоуроки для отладчика Eclipse.
Теперь, чтобы ответить на ваши вопросы:
Насколько я понимаю, "основной" метод запускается автоматически. В этом
метод, который мы создаем объект "выиграть"
и, как следствие, конструктор
класса будут выполнены.
Объект, который создается, имеет тип HelloWorldSwing
, а не win
. win
это просто имя переменной.
Есть ли веская причина для создания экземпляра
текстовая область (m_resultArea) снаружи
конструктор, а затем установить его
параметры (setText) в пределах
Конструктор.
Инстанцирование может происходить вне конструктора, но обычные вызовы методов, такие как setText()
, должны происходить внутри другого метода.
Но
когда первая строка класса
выполнено (JTextArea m_resultArea = new
JTextArea (6, 30));.
Первая строка класса выполняется перед конструктором.
Почему мы не можем создать экземпляр текста
площадь в конструкторе?
Ты тоже можешь, до тебя.
Почему мы не можем установить параметры
область текста за пределами конструктора?
(Только ради последовательности).
Как я уже говорил, циклы, вызовы методов и т. Д. Должны происходить внутри метода (конструктора, основного или любого другого метода).
Дополнительную информацию об инициализации поля вы можете найти в руководстве Sun здесь .