Static keyword
In this section we discuss the clear use of static keyword, this static keyword can be used in both variable (excludes local variable) and methods.
The variable or method declared a static will be associated with class rather than objects of the class.
Static variable or class variable
Static variable will always have a single value at runtime, assume you have few objects created for a class each objects will have their own copies of member variables but these static variables are shared between the objects and will have only one copies all time.
class Student { String name; String gender; static int currentYear; }
Here name and gender will be associated with objects, whereas currentYear will be associated with class since they are common to all objects.
Accessing static variable
You can access static variable with object or using class name Ex: ob.currentYear=2016 or Student.currentYear=1026
But accessing using object is discouraged because it does not make it clear that they are class variables.
Static Methods or Class Methods
Static method can be used to do any operation that doesn’t depends on member variable or to access static fields
Syntax
ClassName.methodName(args)
Example:
class Student { String name; String gender; static int currentYear; public static void cube(int i) { System.out.println(i * i * i); } public static int getCurrentYeat() { return currentYear; } }
Accessing static methods
You can access the static method using object or class name, but accessing using object is discouraged because it does not make it clear that they are static method.
Example
int year=Student.getCurrentYear();
Student.cube(3); // prints 27