Java novices are not much aware of static vs non-static or static to non-static calling. Let us find the rules through a program.
In the following code, show() method is non-static and display() is static. The question is "Can we call a non-static method from static method?". Everyone says simply "no" because it requires an object to call. Anyhow, let us observe the compiler message.
public class Demo
{
public void show()
{
System.out.println("Hello");
}
public static void display()
{
show( );
}
}

Output screen of static vs non-static Java
This is an usual compiler message every Java professional come acrosses.
Now let us see the combinations.
show() | display() | Result |
---|---|---|
non-static | non-static | works |
static | non-static | works |
static | static | works |
non-static | static | does not work |
The above table can easily be remembered. Only one combination does not work – calling non-static member from static member (it requires object).
Anyhow do small programs yourself and check the rules of combinations to have command over coding.
Can a class be static?
No. A class cannot be static. But static classes are possible with inner classes. Read Static Nested Classes.
Pass your comments and suggestions on this tutorial "static vs non-static Java".
Your all posts are easily understandable. Thanks
What is difference between interface and inheritance?
interface is one the types classes with special features Java does support. Inheritance is an OOPs concept.