In this example you create a variable [myForm] of type Form1 and allocate it memory at creation.
Form1 myForm = new Form1();
In this example the first line creates a variable of type Form1, but no memory has been allocated for this myForm object.
Form1 myForm;
Then the second line can be used whenever you need a new instance of type Form1 [at that point, the memory will be allocated for the myForm object].
myForm = new Form1();
In my opinion, it is really a good pratice to declare all of your variables to there types and then when you need a live instance you can do your ... obj = new Foo1();