Non causerà errori. Solo perché tu inizializzi un oggetto, non significa che il metodo principale viene eseguito. Java sarà solo inizialmente chiamare il metodo principale della classe passato a esso, come
>java TestClass
Tuttavia, fare qualcosa di simile:
public class TestClass
{
public static void main (String[] args)
{
TestClass foo = new TestClass();
foo.main(args);
}
}
O
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();
}
}
Quello causerebbe un StackOverflowError
, perché sei exp lecitamente chiamando il metodo principale di TestClass, che poi chiama il metodo principale ancora, e ancora, e ancora, e ....
In caso di dubbio, basta provarlo fuori :-)
fonte
2011-01-21 00:02:14
Parole sagge: D Grazie! – guy8214