Это в порядке, чтобы записать конструктору, который ничего не делает?

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

В этом контексте у меня есть вопрос, если нормально писать конструктору, который ничего не делает. Например:

public Point() {
}
10
задан Roman 8 March 2010 в 21:47
поделиться

12 ответов

Вам не нужно писать пустой конструктор; компилятор Java автоматически вставит его за вас (только если вы не определили никаких других конструкторов, принимающих args).

Так что это вполне нормально (и полезно в некоторых ситуациях), но не обязательно.

15
ответ дан 3 December 2019 в 14:52
поделиться

Это абсолютно нормально делать это таким образом. Возможно, позже вы заполните его полезным кодом.

0
ответ дан 3 December 2019 в 14:52
поделиться

Похоже, что вы явно создаете конструктор по умолчанию, чего делать не нужно. Конструктор по умолчанию создается автоматически, если нет других конструкторов.

4
ответ дан 3 December 2019 в 14:52
поделиться

Как уже говорили все, вам не нужно его компилировать.
Но для стандартов кодирования я бы добавил это туда. Обычно при просмотре класса конструктор находится наверху, и приятно видеть, что происходит. Если его нет, разработчику придется искать его в классе. И в зависимости от того, какая IDE используется, это может быть проблемой.

Но решать только вам.

3
ответ дан 3 December 2019 в 14:52
поделиться

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

Это похоже на то, как если бы у вас был оператор if, который имеет только 1 оператор под ним. Должны ли вы поставить скобки вокруг него или просто оставить одно утверждение с отступом под if? Если вы потом добавите еще несколько утверждений под if и забудете о скобках, у вас возникнет логическая ошибка. С тем же успехом можно поставить скобки, или, другими словами, конструктор.

0
ответ дан 3 December 2019 в 14:52
поделиться

Насколько мне известно, единственное действительное использование пустого конструктора - это когда вы делаете его закрытым, чтобы никто не создавал экземпляр класса, например:

private Point () {}

В противном случае, как говорили другие ответы, это чисто стилистический выбор, в основном в любом случае безвреден.

4
ответ дан 3 December 2019 в 14:52
поделиться

Вам не нужно писать пустой конструктор (потому что он используется по умолчанию), если у вас нет других конструкторов с параметрами.

0
ответ дан 3 December 2019 в 14:52
поделиться

Конструктор, который ничего не делает, безусловно, приемлем для языка, поскольку Java предоставляет его по умолчанию, если вы этого не делаете (JLS 8.8.9):

Если класс не содержит объявлений конструктора, то автоматически предоставляется конструктор по умолчанию, который не принимает параметры.

Существуют некоторые ограничения на то, когда именно конструктор по умолчанию может быть автоматически предоставлен, какой модификатор доступа он будет иметь и т. Д., И все это указано в JLS.

1
ответ дан 3 December 2019 в 14:52
поделиться

Как уже упоминалось, в вашем случае конструктор по умолчанию не нужен, потому что Java создаст конструктор по умолчанию, когда вы его не определите. Но чтобы ответить на ваш вопрос, вполне нормально иметь пустой конструктор по умолчанию.

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

0
ответ дан 3 December 2019 в 14:52
поделиться

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

0
ответ дан 3 December 2019 в 14:52
поделиться

Конечно, если вы этого не сделаете, компилятор это сделает, однако, поскольку это часть языка, я бы не пошел на ctor, если он не должен быть частным или иметь аргументы.

0
ответ дан 3 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: