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

জাভাতে main() মেথড কেন সবসময় static?


জাভা main() মেথড সবসময় static, যাতে কম্পাইলার এটি অবজেক্ট তৈরি না করেও বা ক্লাসের অবজেক্ট তৈরি হওয়ার আগে কল করতে পারে।

  • যেকোনো জাভা প্রোগ্রামে, main() মেথড হলো স্ট্রাটিং পয়েন্ট যেখানে থেকে কম্পাইলার প্রোগ্রাম এক্সিকিউশন শুরু করে। তাই কম্পিলারকে main() মেথড কল করতে হয়।
  • যদি main() কে non-static থাকতে দেয়া হয়, তবে main() মেথড কল করার সময় JVM এর ক্লাসটি ইনস্ট্যানশিয়েট করতে হতো।
  • ইনস্ট্যানশিয়েট করার সময় সেটি সেই ক্লাসের কন্সট্রাক্টর কল করতে হতো, কন্সট্রাক্টর আর্গুমেন্ট নিলে অ্যמ׬্বিগুইটি হয়ে যাবে।
  • একটি ক্লাসের static মেথড শুধু ক্লাসের নাম দিয়ে কল করা যায় বিনা অবজেক্ট তৈরি করেই।
  • main() মেথড জাভাতে অবশ্যই public, static এবং void ডিক্লেয়ার করা উচিত। যদি এই중에 যেকোনো একটিও মিসিং থাকে, জাভা প্রোগ্রাম কম্পাইল হবে কিন্তু রানটাইম এরর থ্রো করবে।

উদাহরণ

class Book {
    public static void getBookInfo() { //static method
        System.out.println("Welcome to TutorialsPoint Library");
    }
}
public class Test {
    public static void main(String[] args) {
        // Book ক্লাসের static মেথড ক্লাস নাম দিয়ে কল
        Book.getBookInfo();
    }
}

আউটপুট

Welcome to TutorialsPoint Library
  1. জাভাতে নেমিং কনভেনশন কেন মান্য করা উচিত?

  2. জাভাতে main() মেথড কি final ডিক্লেয়ার করা যায়?

  3. জাভাতে কনস্ট্রাক্টরের নাম ক্লাসের নামের সাথে একই কেন

  4. জাভাতে মেথড ওভাররাইডিং