কম্পিউটার টিউটোরিয়াল

জাভাতে static এবং non-static মেথডের পার্থক্য

একটি Java মেথড হলো স্টেটমেন্টের একটি সমষ্টি যা একসাথে গোষ্ঠীভূত হয় একটি অপারেশন সম্পাদনের জন্য। উদাহরণস্বরূপ, System.out.println() মেথড কল করলে সিস্টেম কনসোলে মেসেজ দেখানোর জন্য একাধিক স্টেটমেন্ট এক্সিকিউট করে।

Static Method (স্ট্যাটিক মেথড)

একটি static method কে ক্লাস মেথড (class method) ও বলা হয়। এটি ক্লাসের সব অবজেক্টের মধ্যে কমন থাকে এবং ক্লাসের নাম দিয়েও অ্যাক্সেস করা যায়।

Non-Static Method (নন-স্ট্যাটিক মেথড)

একটি ক্লাসের যে কোনো মেথড static না হলে সেটাকে non-static method বা instance method বলা হয়।

Static এবং Non-Static Method-এর মধ্যে গুরুত্বপূর্ণ পার্থক্য

ক্র. নং কী Static Non-Static
১ অ্যাক্সেস (Access) Static method শুধু static মেম্বার অ্যাক্সেস করতে পারে, non-static মেম্বার অ্যাক্সেস করতে পারে না। Non-static method static এবং non-static উভয় মেম্বার অ্যাক্সেস করতে পারে।
২ বাইন্ডিং (Binding) Static method কম্পাইল টাইম বাইন্ডিং (early binding) ব্যবহার করে। Non-static method রানটাইম বাইন্ডিং (dynamic binding) ব্যবহার করে।
৩ ওভাররাইডিং (Overriding) Static method কম্পাইল টাইম বাইন্ডিং হওয়ায় ওভাররাইড করা যায় না। Non-static method ডাইনামিক বাইন্ডিং হওয়ায় ওভাররাইড করা যায়।
৪ মেমরি অ্যালোকেশন (Memory Allocation) Static method কম জায়গা নেয় এবং মেমরি অ্যালোকেশন একবারই হয়। Non-static method বেশি জায়গা নিতে পারে। মেমরি অ্যালোকেশন মেথড ইনভোক হলে হয় এবং এক্সিকিউশন শেষ হলে ডি-অ্যালোকেট হয়।
৫ কীওয়ার্ড (Keyword) Static method ডিক্লেয়ার করতে static কীওয়ার্ড ব্যবহার করতে হয়। নরমাল মেথডে কোনো স্পেশাল কীওয়ার্ড লাগে না।

Static vs Non-Static Method উদাহরণ

JavaTester.java

public class JavaTester {
    public static void main(String args[]) {
        Tiger.roar();
        Tiger tiger = new Tiger();
        tiger.eat();
    }
}

class Tiger {
    public void eat(){
        System.out.println("Tiger eats");
    }
    public static void roar(){
        System.out.println("Tiger roars");
    }
}

আউটপুট

Tiger roars
Tiger eats
  1. জাভাতে paint() মেথড এবং repaint() মেথড-এর মধ্যে পার্থক্য কী?

  2. জাভাতে স্ট্যাটিক ব্লক এবং কনস্ট্রাক্টরের পার্থক্য কী?

  3. জাভাতে import এবং static import স্টেটমেন্টের পার্থক্য কী?

  4. জাভাতে স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং