Possible Duplicate:
When should a method be static?
Usually when writing a static method for a class, the method can be accessed using ClassName.methodName. What is the purpose of using ‘static’ in this simple example and why should/should not use it here? also does private static defeat the purpose of using static?
public class SimpleTest {
public static void main(String[] args) {
System.out.println("Printing...");
// Invoke the test1 method - no ClassName.methodName needed but works fine?
test1(5);
}
public static void test1(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
public void test2(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
private static void test3(int n1) {
System.out.println("Number: " + n1.toString());
}
}
I had a look at a few tutorials. E.g. http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
My understanding of it is that instead of creating an instance of a class to use that method, you can just use the class name – saves memory in that certain situations there is no point in constructing an object every time to use a particular method.
In this Example,Static is used to directly to access the methods.A private static method defeats the purpose of “Data hiding”.
Your main can directly call test1 method as it is also Static,it dosn’t require any object to communicate.
Maincannot refernon-staticmembers,or any other non-static member cannot refer static member."non-static members cannot be referred from a static context"You can refer This thread for more info about Static members.