Многие люди говорят, что конструктор в java нестационален ..! Для инициализации объекта нам нужен конструктор. Поэтому мы можем использовать конструктор без объекта, тогда конструктор должен быть статическим.В Java, является конструктором нестационарным?
ответ
У конструктора есть экземпляр (this
). Поэтому он по определению не является статичным.
JRE запускает конструктор после создания экземпляра.
Ну, это не о том, что «думают многие люди», а скорее о определении. Как Java Language Specification говорит:
Метод экземпляра всегда вызывается относительно объекта, который становится текущим объектом, к которому ключевые слова
this
иsuper
ссылаться во время выполнения тела метода.
и
Метод, который не объявлен
static
вызывается метод экземпляра , а иногда называют не-статический метод.
Как вы this
и super
определены в контексте конструктора, вы должны рассмотреть конструктор как нестатического метода, однако я понимаю идею позади вашего поста, что new
несет некоторые статические характеристики:
- вы звоните
new
перед тем у вас есть экземпляр готового new
не является виртуальным
Статические члены должны вызываться с именем класса, без необходимости создания экземпляра класса, как в
ClassName.memberName/(..)
Смотрите хорошее объяснение: Java static constructor – Is it really Possible to have them in Java?
Конструктор в Java не используется для построения объекта объекта, но для инициализации объекта. Конструктор - это первый метод, который запускается JVM после того, как объект создан из экземпляра.
В Java конструктор не может быть статическим или синхронизированным. Объект будет создан (создание + инициализация) только одним потоком за раз, а конструктор запускается на уже созданном экземпляре, что означает нестатический контекст.
- 1. activate.Parameter не является конструктором
- 2. Является ли Java конструктором по умолчанию?
- 3. ошибка не является конструктором
- 4. Ext.grid.ColumnModel не является конструктором
- 5. gadgets.MiniMessage не является конструктором
- 6. Firebase не является конструктором
- 7. undefined не является конструктором
- 8. Vue не является конструктором
- 9. AlphaMaskFilter не является конструктором
- 10. FormData не является конструктором
- 11. google.maps.Overlay не является конструктором
- 12. OrbitControls не является конструктором
- 13. Promise не является конструктором
- 14. TypeError ... не является конструктором
- 15. Когда является конструктором, вызываемым в вложенных классах (Java)
- 16. Почему не является конструктором String()?
- 17. Ошибка типа - не является конструктором
- 18. TypeError: THREE.OrbitControls не является конструктором
- 19. TypeError: undefined не является конструктором
- 20. TypeError: Date не является конструктором
- 21. Фильм не является конструктором - Mongoose
- 22. jsaTypeError: GoogleTiledMap не является конструктором
- 23. Модель не является конструктором-Backbone
- 24. ТипError: google.visualization.DataTable не является конструктором
- 25. Babel.js Класс не является конструктором
- 26. Является ли это конструктором копирования?
- 27. Typcript class.default не является конструктором
- 28. Магистральная коллекция не является конструктором
- 29. ТипError: d.ListingCreationDate.getUTCFullYear не является конструктором
- 30. ТипError: cognitiveServices.face не является конструктором
Очень сложно понять, что вы пытаетесь сказать/спросить. Повторите попытку – musefan
Я думаю, что это хороший философский вопрос :) Конструктор - это странный метод - он относится к классу и к новому экземпляру одновременно ... Поэтому я понимаю точку OP. –
Я думаю, что это была попытка ответить на вопрос и ответить самим себе, но это неясно. Если да, отредактируйте свой вопрос, чтобы он просто содержал часть вопроса (хотя вы можете добавить некоторые подробности о том, что вызвало путаницу), а затем добавить ответ в область ответа. – BSMP