java.lang.Class জাভাতে সবচেয়ে গুরুত্বপূর্ণ ক্লাসের একটিঔর এটি getClass(), forName() মতো অনেক ইউটিলিটি মেথড প্রদান করে যা একটি ক্লাস খুঁজে বের করতে এবং লোড করতে ব্যবহৃত হয়। এটি Class.newInstance() মতো মেথডও প্রদান করে যা রিফ্লেকশন-র ব্যাকবোন এবং new() অপারেটর ছাড়া একটি ক্লাসের ইনস্ট্যান্স তৈরি করতে দেয়।
java.lang.Class-এর গুরুত্ব
- ক্লাস Class-এর ইনস্ট্যান্সগুলো একটি রানিং জাভা অ্যাপ্লিকেশনে ক্লাস, ইন্টারফেস, enum এবং annotation রিপ্রেজেন্ট করে।
- যখন একটি জাভা ফাইল কম্পাইল হয়, কম্পাইলার একটি পাবলিক, স্ট্যাটিক, ফাইনাল ফিল্ড নামক Class টাইপের java.lang.Class জেনারেটেড .class ফাইলে ইনসার্ট করে।
- প্রতিটি ক্লাস তার কোড এক্সপোজ করে java.lang.Class-এর একটি ইনস্ট্যান্স রূপে।
- Class-এর কোনো পাবলিক কন্সট্রাক্টর নেই। বরং, Class objects জাভা ভার্চুয়াল মেশিন (JVM) দ্বারা অটোমেটিক্যালি কনস্ট্রাক্ট করা হয় ক্লাস লোড হওয়ার সময় এবং defineClass() মেথড কল করার সময় ক্লাস লোডারে।
উদাহরণ
public class TutorialsPoint {
public static void main(String []args){
// class field-এর মাধ্যমে getName() মেথড অ্যাক্সেস
System.out.println("The name of the class is: "+ TutorialsPoint.class.getName());
}
}
আউটপুট
The name of the class is: TutorialsPoint