What is Java Static? Types of Static Methods?
Java applications use Object Oriented development. In an Object Oriented project, programmers design a set of objects to carry out specific sections of the tasks required. When programmers create Java class declarations, they can opt to use the static keyword for both variables and methods.
When we want that a class member should be used independently of any object of that class, we have to precede that member’s declaration with the keyword static. When a member is declared as static, it can be accessed without creating an object of the class and without referring to the object.
That static is a static member belongs to a class as a whole and not to any one instance/object of that class. The static member is shared by all objects of that class.
In java main is declared as a static because object is created from main method and we have to need the object before calling main method so here we have problem how jvm call to the main now static keyword tell the jvm you have not need the object to call main method instead of you can call main Class Name. Main () so here jvm can call without creating any object of the class.
The static keyword can be used in 3 scenarios
1) Static variables 2) static methods 3) static blocks of code.
In the Java API, static variables are given in all capital letters. One common use of static variables in Java is in error codes.
To set a variable or method as “static,” use the static keyword in the method declaration before the variable type or method’s return type, such as “static into the Variable.” Static variables can also have the “final” keyword, which ensures that they cannot be changed.
Like static variables, static methods can be accessed without instantiating the class. Static methods are often “utility” methods, such as those found in the Java API Math class.
Java’s main() method is static, signifying that even though it can be placed in any class, you do not need an instance of that class to run it.
Static methods can only access static variables of that class, and therefore cannot access instance variables. So if you want a class that accesses instance variables, this class cannot be static. Any object property that is specific to each instance of the object should not be a static variable. Temporary values are also not static.
Methods declared with the keyword static as modifier are called static methods or class methods. They are so called because they affect a class as a whole, not a particular instance of the class. Static methods are always invoked without reference to a particular instance of a class.
The use of a static method suffers from the following restrictions:
1. A static method can only call other static methods.
2. A static method must only access static data.
3. A static method cannot reference to the current object using keywords super or this.
There are two types of methods.
Instance methods are associated with an object and use the instance variables of that object. This is the default.
Static methods use no instance variables of any object of the class they are defined in. If you define a method to be static, you will be given a rude message by the compiler if you try to access any instance variables. You can access static variables, but except for constants, this is unusual.
Static methods typically take all they data from parameters and compute something from those parameters, with no reference to variables. This is typical of methods which do some kind of generic calculation. A good example of this are the many utility methods in the predefined Math class.