স্ট্যাটিক (Class) ভেরিয়েবল: static কীওয়ার্ডসহ ডিক্লেয়ার করা হয়। ক্লাসের সব ইনস্ট্যান্সের জন্য একটি কপি শেয়ার করা হয়। ক্লাস লোড হলে মেমোরি alok হয়।
ইন্সট্যান্স ভেরিয়েবল: static ছাড়া ডিক্লেয়ার করা হয়। প্রতিটি অবজেক্টের জন্য আলাদা কপি থাকে।
উদাহরণ
public class VariableDemo {
static int classVar = 0; // ক্লাস ভেরিয়েবল
int instanceVar = 0; // ইন্সট্যান্স ভেরিয়েবল
public void increment() {
classVar++;
instanceVar++;
}
public static void main(String[] args) {
VariableDemo obj1 = new VariableDemo();
VariableDemo obj2 = new VariableDemo();
obj1.increment();
obj2.increment();
System.out.println("obj1: classVar=" + obj1.classVar + ", instanceVar=" + obj1.instanceVar);
System.out.println("obj2: classVar=" + obj2.classVar + ", instanceVar=" + obj2.instanceVar);
}
}
আউটপুট
obj1: classVar=2, instanceVar=1 obj2: classVar=2, instanceVar=1
দেখুন, classVar দুটি অবজেক্টের জন্য শেয়ার্ড (২), কিন্তু instanceVar আলাদা (১)।