Hi,
A static method belongs to the class itself and a non-static (or instance) method belongs to each object that is generated from that class. If your method does something that doesn't depend on the individual characteristics of its class, make it static (it will make the program's footprint smaller). Otherwise, it should be non-static.
You can call static methods like this:
Foo.method1()
. If you try that with method2, it will fail. But this will work:
Foo bar = new Foo(1);
bar.method2();