2014-11-26 2 views
-7

Я буду признателен за помощь на этом:Confuse с объектом экземпляра с помощью конструктора по умолчанию

почему мы используем ниже синтаксис для создания объекта:

A a = new A(); 

Почему мы используем конструктор по умолчанию? даже если моя классная структура похожа на

class A{ 
    public static void main(String[] aregs) 
    { 
    A a = new A(); 
    } 
} 

Я не объявляю никакой переменной экземпляра, тогда зачем мне нужен конструктор по умолчанию?

Почему у нас есть имя конструктора, такое же, как имя класса?

Конструктор возвращает любое значение или ссылку.

+3

Это довольно простой Java-материал - я бы рекомендовал получить одну из вводных Java-книг в Интернете и чтение - Eckel's Thinking in Java будет хорошим. – BarrySW19

+0

, вероятно, чтобы вы могли инициировать поток программы, не имея необходимости находиться в контексте 'static'. – EpicPandaForce

+0

Смотрите: [SO java-default-constructor] (http://stackoverflow.com/questions/4488716/java-default-constructor) и [учебник по конструктору java] (https://docs.oracle.com/javase/tutorial /java/javaOO/constructors.html) - NB Это были первые два хита google. На самом деле, вы могли бы сделать хуже, чем делать все [java tutorial] (https://docs.oracle.com/javase/tutorial/java/index.html). – wmorrison365

ответ

0

Я не объявляю какую-либо переменную экземпляра, то почему мне нужен конструктор по умолчанию?

Конструктор необходим для создания объекта. Даже если вы не объявляли какие-либо поля в своем классе, вам все равно нужно вызвать конструктор, который в свою очередь (автоматически) вызовет конструкторы суперкласса, а затем выделит объект в куче и вернет ссылку на это выделенное объект.

Почему у нас есть имя конструктора, такое же, как имя класса?

Это просто спецификация языка.

делает конструктор возвращает никакого значения или ссылки

Да, как я уже говорил ранее он возвращает ссылку на объект, созданный в куче.

+0

Спасибо за усилия! но это будет здорово, если вы предоставите мне некоторую письменную информацию об этом ... где я могу это найти. –

+0

Я бы порекомендовал вам книгу «Java Head First». Глава 9 «Жизнь и смерть объекта» ответят на ваш вопрос. – javaHunter

0
  1. Вам нужен конструктор по умолчанию, чтобы он мог создать экземпляр объекта. Это необходимо, чтобы он мог получить адрес памяти, поэтому java знает, где хранятся данные объекта.
  2. Он имеет то же имя, что и класс, поэтому java знает, какой из методов является/является конструктором
  3. Конструктор doesn ' t возвращает любое значение (-ы), и то, что оно возвращает на фоне, является памятью addres (как указано в 1.)

Это все базовое вещество Java, которое поставляется с языком. Если бы я был вами, я бы посмотрел на this

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