это комбинация как нового, так и конструктора, причина, по которой разрешается вызов конструктора в методе main.если предположим, создайте конструктор:
public SampleTest () {}
, вызывая его из основного метода:
Сценарий 1: если я напрямую вызываю этот конструктор из метода main без нового ключевого слова ::
SampleTest();
Результат 1: это вызывает исключение времени компиляции "Метод SampleTest ()не определено для типа SampleTest "
Сценарий 2: , если я создал метод с именем SampleTest () в этом классе, как показано ниже (который имеет возвращаемый тип как void, как мынет возвращаемых типов для конструкторов):
public void SampleTest() {}
public static void main(String[] args){
SampleTest();
}
Результат 2: выдает исключение времени компиляции "Невозможно сделать статическую ссылку на нестатический методSampleTest () из типа SampleTest "
Сценарий 3: теперь, если добавить новое ключевое слово перед вызовом конструктора, как показано ниже:
new SampleTest();
Результат 3: , теперь только с комбинацией оператора new с конструктором 1041 * вызов разрешен в методе main, без каких-либо исключений.
Итак, наконец, причина вызова конструктора из метода main - это сочетание new и constructor.в противном случае он рассматривает конструктор как любой другой метод экземпляра, генерирует исключения, как в результатах 1 и 2.