AnyCompiler

static aur final

Ek static field ya method khud class ka hota hai, kisi individual instance ka nahi — Counter.increment() ki har call us ek shared Counter.count ko modify karti hai, isi wajah se teen calls use 3 par chhorti hain, na ke teen alag instances jo har ek 1 par baithe hon.

public class Main {
    static class Counter {
        static int count = 0;

        static void increment() {
            count++;
        }
    }

    public static void main(String[] args) {
        Counter.increment();
        Counter.increment();
        Counter.increment();
        System.out.println(Counter.count);
    }
}
Output
3

final

final kisi cheez ko set hone ke baad unmodifiable mark karta hai. Ek variable par, iska matlab hai ke reference ko kabhi bhi reassign nahi kiya ja sakta, jo Java mein ek constant declare karne ka conventional tareeqa hai — yahan PI_APPROX ko kahin se bhi parha ja sakta hai lekin kabhi badla nahi ja sakta.

public class Main {
    static final double PI_APPROX = 3.14159;

    public static void main(String[] args) {
        double radius = 2;
        System.out.println(PI_APPROX * radius * radius);
    }
}
Output
12.56636

Aage: Optional par ek closing look, aur is course ne kya cover kiya.

Practice exercise

Ek class Counter define karein jiska ek static int count ho jo 0 se shuru ho aur ek static method increment() ho jo usme 1 add kare. increment() ko teen baar call karein, phir Counter.count print karein.