Почему встроенные классы в Java не имеют конструкторов по умолчанию, но аргументы необходимо передавать при создании объекта этого класса? - PullRequest
0 голосов
/ 03 июня 2019

Почему встроенные классы в Java не имеют конструкторов по умолчанию, но при создании объекта этого класса необходимо передавать аргументы?

Примеры:

public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence

public final class Array
extends Object

1 Ответ

0 голосов
/ 03 июня 2019

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

В java-библиотеке есть некоторые классы, которые имеют конструкторы по умолчанию, но только когда они могут быть полезны.

Чтобы просмотреть примеры, которые вы упомянули:

String имеет конструктор по умолчанию для создания пустой строки. Это не очень полезно из-за неизменности строк, но все равно может использоваться при необходимости.

Array содержит только статические методы и не должен создаваться по какой-либо причине.

...