Class variables or static
variables are variables that are declared with static
modifier. A given class will have only one copy of each of its static
variables, regardless of how many times the class has been instantiated.
If the value of a static
variable is changed, the new value is available equally in all instances of the class. The final
keyword could be added to indicate the value of static
variable will never change.
If you try to assign a new value to final
variable, you will get a compile error.
package org.kodejava.basic;
public class StaticDemo {
// static variable with final value that never change
final static int Y = 20;
// static variable
static int x = 12;
// non-static variable
int z;
public static void main(String[] args) {
StaticDemo sd0 = new StaticDemo();
System.out.println("x before update = " + StaticDemo.x);
System.out.println("y= " + StaticDemo.Y);
sd0.z = StaticDemo.x + StaticDemo.Y;
System.out.println("z= " + sd0.z);
StaticDemo.x = 15;
System.out.println("x after update = " + StaticDemo.x);
StaticDemo sd1 = new StaticDemo();
StaticDemo sd2 = new StaticDemo();
StaticDemo.x = 20;
System.out.println("StaticDemo.x = " + StaticDemo.x);
System.out.println("sd0 = " + sd0.getX());
System.out.println("sd1 = " + sd1.getX());
System.out.println("sd2 = " + sd2.getX());
//
// try to assign value to final variable, it will cause a
// compile time error
//
// StaticDemo.Y = 30;
}
public int getX() {
return StaticDemo.x;
}
}
Here is the output printed by the program:
x before update = 12
y= 20
z= 32
x after update = 15
StaticDemo.x = 20
sd0 = 20
sd1 = 20
sd2 = 20
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024