The static methods belong to the class and they will be loaded into the memory along with the class. You can invoke them without creating an object. (using the class name as reference).
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Contents of the static method"); } public static void main(String args[]){ Sample.demo(); } }
Contents of the static method
The "this" keyword is used as a reference to an instance. Since the static methods doesn’t have (belong to) any instance you cannot use the "this" reference within a static method. If you still, try to do so a compile time error is generated.
And main method is static therefore, you cannot use the "this" reference in main method.
public class Sample{ int num = 50; public static void main(String args[]){ System.out.println("Contents of the main method"+this.num); } }
Sample.java:4: error: non-static variable this cannot be referenced from a static context System.out.println("Contents of the main method"+this.num); ^ 1 error