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

জাভাতে টপ-লেভেল ক্লাসকে protected বা private ডিক্লেয়ার করা যায় কি?


না, আমরা একটি টপ-লেভেল ক্লাসকে private বা protected ডিক্লেয়ার করতে পারি না। এটি শুধু public বা ডিফল্ট (কোনো মডিফায়ার নেই) হতে পারে। যদি এর কোনো মডিফায়ার না থাকে, তবে এটিকে ডিফল্ট অ্যাক্সেস মाना হয়।

সিনট্যাক্স

// একটি টপ-লেভেল ক্লাস 
public class TopLevelClassTest { 
    // ক্লাস বডি 
}
  • যদি একটি টপ-লেভেল ক্লাস private হিসেবে ডিক্লেয়ার করা হয়, কম্পাইলার কমপ্লেইন করবে যে modifier private is not allowed here। এর মানে হল একটি টপ-লেভেল ক্লাস private হতে পারে না, একই কথা protected অ্যাক্সেস স্পেসিফায়ারের জন্যও প্রযোজ্য।
  • Protected মানে হল মেম্বারটি একই প্যাকেজের যেকোনো ক্লাস এবং সাবক্লাস-দ্বারা অ্যাক্সেসযোগ্য যদি সেগুলো অন্য প্যাকেজে থাকে।
  • টপ-লেভেল ক্লাসগুলো শুধু public, abstract এবং final মডিফায়ার থাকতে পারে, এবং কোনো ক্লাস মডিফায়ার ডিফাইন না করাও সম্ভব। এটিকে ডিফল্ট/প্যাকেজ অ্যাক্সেসিবিলিটি বলা হয়।
  • আমরা ইনার ক্লাসগুলোকে private বা protected ডিক্লেয়ার করতে পারি, কিন্তু আউটার ক্লাস-এ এটি অনুমোদিত নয়।
  • একটি জাভা সোর্স ফাইলে একাধিক টপ-লেভেল ক্লাস ডিফাইন করা যায়, কিন্তু hoogstwa একটি public টপ-লেভেল ক্লাস ডিক্লেয়ারেশন থাকতে পারে। ফাইলের নাম অবশ্যই public ক্লাসের নামের সাথে মিলতে হবে।

Protected হিসেবে ক্লাস ডিক্লেয়ার করা

উদাহরণ

protected class ProtectedClassTest { 
    int i = 10; 
    void show() { 
        System.out.println("Declare top-level class as protected"); 
    } 
} 
public class Test { 
    public static void main(String args[]) { 
        ProtectedClassTest pc = new ProtectedClassTest(); 
        System.out.println(pc.i); 
        pc.show(); 
        System.out.println("Main class declaration as public"); 
    } 
}

উপরের উদাহরণে, আমরা ক্লাসকে protected ডিক্লেয়ার করেছি, এটি একটি এরর থ্রো করবে বলে modifier protected not allowed here। তাই উপরের কোড এক্সিকিউট হয় না।

আউটপুট

modifier protected not allowed here

Private হিসেবে ক্লাস ডিক্লেয়ার করা

উদাহরণ

private class PrivateClassTest { 
    int x = 20; 
    void show() { 
        System.out.println("Declare top-level class as private"); 
    } 
} 
public class Test { 
    public static void main(String args[]) { 
        PrivateClassTest pc = new PrivateClassTest(); 
        System.out.println(pc.x); 
        pc.show(); 
        System.out.println("Main class declaration as public"); 
    } 
}

উপরের উদাহরণে, আমরা ক্লাসকে private ডিক্লেয়ার করেছি, এটি একটি এরর থ্রো করবে বলে modifier private not allowed here। তাই উপরের কোড এক্সিকিউট হয় না।

আউটপুট

modifier private not allowed here
  1. জাভাতে Enum কি কোনো ক্লাস এক্সটেন্ড করতে পারে?

  2. জাভাতে কি প্রোটেক্টেড মেথড ওভাররাইড করা যায়

  3. জাভাতে JTextField-এ প্যাডিং যোগ করুন

  4. জাভাতে সিঙ্গেল লেভেল ইনহেরিট্যান্স