Это не вызовет ошибок. То, что вы инициализируете объект, не означает, что основной метод выполняется. Java только первоначально вызовет основной метод переданного ей класса, например
>java TestClass
Однако , делая что-то вроде:
public class TestClass
{
public static void main (String[] args)
{
TestClass foo = new TestClass();
foo.main(args);
}
}
Или
public class TestClass
{
public TestClass()
{
//This gets executed when you create an instance of TestClass
main(null);
}
public static void main (String[] args)
{
TestClass foo = new TestClass();
}
}
То, что вызовет StackOverflowError
, потому что вы явно вызываете основной метод TestClass, который затем будет вызывать основной метод снова, и снова, и снова, и ....
Если сомневаешься, просто проверь: -)