Java:
String [] as = new String [] {new String ("foo"), new String ("bar")};
Это просто инициализация массива с элементами при объявлении его.
Но ваш вопрос показывает неправильное представление: «Или вы просто должны использовать конструктор по умолчанию для создания массива объектов».
Вы часто объявляете массив в Java без объявления элементов в массиве. Тем самым вы определяете размер массива и типы, которые он будет содержать - однако нет разницы между стандартным ctor или нет.
Существует только разница между встроенными типами и объектами. Если вы определяете массив встроенных типов (int, char, boolean, double, ... - иногда называемый «примитивом»), они инициализируются значением по умолчанию (0, 0.0 или false).
int [] ia; // only declares the array as of type int
int [] ia = new int [4]; // +size =4, all elements are 0
int [] ia = new int [] {3, 4, 5}; /* elements defined, and
size is implicitly set to 3 */
String [] sa; // only declared, type defined
String [] sa = new String [4]; /* type and size defined
but no elements, no strings defined */
String [] sa = new String [] {new String ("exit")}; /* type defined, size implicitly (1), one element= String defined, using a constructor */
Но для класса с конструктором по умолчанию, который является конструктором, который не принимает аргументов, автоматически не создается:
String [] sa = new String [4]; /* no String defined so far,
although there is a standard-CTOR for String */
Это в полной аналогии с простыми элементами. Если у вас есть класс:
class Foo {
int a;
File file;
String s;
}
a
инициализируется как 0
как примитивный тип, но file и s имеют значение null
, независимо от того, существует ли стандартный конструктор (для s
есть, для file
нет т).