2015-06-29 1 views
0

Многие люди говорят, что конструктор в java нестационален ..! Для инициализации объекта нам нужен конструктор. Поэтому мы можем использовать конструктор без объекта, тогда конструктор должен быть статическим.В Java, является конструктором нестационарным?

+1

Очень сложно понять, что вы пытаетесь сказать/спросить. Повторите попытку – musefan

+0

Я думаю, что это хороший философский вопрос :) Конструктор - это странный метод - он относится к классу и к новому экземпляру одновременно ... Поэтому я понимаю точку OP. –

+0

Я думаю, что это была попытка ответить на вопрос и ответить самим себе, но это неясно. Если да, отредактируйте свой вопрос, чтобы он просто содержал часть вопроса (хотя вы можете добавить некоторые подробности о том, что вызвало путаницу), а затем добавить ответ в область ответа. – BSMP

ответ

4

У конструктора есть экземпляр (this). Поэтому он по определению не является статичным.

JRE запускает конструктор после создания экземпляра.

0

Ну, это не о том, что «думают многие люди», а скорее о определении. Как Java Language Specification говорит:

Метод экземпляра всегда вызывается относительно объекта, который становится текущим объектом, к которому ключевые слова this и super ссылаться во время выполнения тела метода.

и

Метод, который не объявлен static вызывается метод экземпляра , а иногда называют не-статический метод.

Как вы this и super определены в контексте конструктора, вы должны рассмотреть конструктор как нестатического метода, однако я понимаю идею позади вашего поста, что new несет некоторые статические характеристики:

  • вы звоните newперед тем у вас есть экземпляр готового
  • new не является виртуальным
0

Конструктор в Java не используется для построения объекта объекта, но для инициализации объекта. Конструктор - это первый метод, который запускается JVM после того, как объект создан из экземпляра.

0

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

Смежные вопросы