.class
জাভা মানে কি ? উদাহরণস্বরূপ, যদি আমি একটি শ্রেণি তৈরি করি Print
। কি Print.class
ফিরে আসে?
.class
সিন্টেক্স সম্পর্কে জিজ্ঞাসা করছে যা ঘটনাক্রমে .class
ফাইল নাম এক্সটেনশনের সাথে সম্পর্কিত ।
.class
জাভা মানে কি ? উদাহরণস্বরূপ, যদি আমি একটি শ্রেণি তৈরি করি Print
। কি Print.class
ফিরে আসে?
.class
সিন্টেক্স সম্পর্কে জিজ্ঞাসা করছে যা ঘটনাক্রমে .class
ফাইল নাম এক্সটেনশনের সাথে সম্পর্কিত ।
উত্তর:
আপনি যখন .class
কোনও শ্রেণির নামের পরে লিখবেন , এটি শ্রেণীর আক্ষরিক - java.lang.Class
অবজেক্টের উল্লেখ করে
যা প্রদত্ত শ্রেণীর সম্পর্কে তথ্য উপস্থাপন করে ।
উদাহরণস্বরূপ, যদি আপনার ক্লাস হয় Print
, তবে Print.class
একটি অবজেক্ট যা Print
রানটাইমগুলিতে শ্রেণিকে উপস্থাপন করে । এটি একই বস্তু যা getClass()
কোনও (প্রত্যক্ষ) উদাহরণের পদ্ধতিতে ফিরে আসে Print
।
Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());
Writer.class.getDeclaredField("writeBuffer")
।
Print.class
?
new Intent(this, Activity.class
? এটি class Activity
প্রতিটি শ্রেণীর তুলনা করে অনুসন্ধান করার চেষ্টা করবে ?
.class
যখন ক্লাস উপলব্ধ না থাকে তখন ব্যবহার করা হয়।
.getClass()
যখন ক্লাস উপলভ্য থাকে তখন ব্যবহৃত হয়।
object.getClass()
প্রদত্ত বস্তুর শ্রেণি প্রদান করে।
উদাহরণ স্বরূপ:
String string = "hello";
System.out.println(string.getClass().toString());
এটি আউটপুট দেবে:
class java.lang.String
এটি স্ট্রিং অবজেক্টের ক্লাস :)
getClass()
ক্লাসের কোনও অবজেক্টের দিকে যদি আপনার কাছে রেফারেন্স থাকে তবেই তা কার্যকর। ClassName.class
এমনকি ক্লাসের কোনও দৃষ্টান্ত না থাকলেও ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, বিবেচনা করুন Math.class
। প্রতিটি নির্দিষ্ট পরিস্থিতির জন্য সঠিক।
.class
এবং.getClass().
যদি কোনও জিনিসের উদাহরণ পাওয়া যায়, তবে তার ক্লাসটি পাওয়ার সহজতম উপায় হ'ল আবেদন করা Object.getClass()
দ্য .class
সিনট্যাক্স
টাইপটি উপলভ্য থাকলেও কোনও উদাহরণ নেই তবে .class
টাইপের নাম যুক্ত করে কোনও ক্লাস নেওয়া সম্ভব । এটি আদিম ধরণের ক্লাস পাওয়ার সহজতম উপায়।
boolean b;
Class c = b.getClass(); // compile-time error
Class c = boolean.class; // correct
ক্লাস সম্পর্কে : docs.oracle.com দেখুন
কেবল স্পষ্ট করে বলতে গেলে, এই '.ক্লাস' পদ্ধতিটি জাভা কোড সংকলনের পরে আপনি যে বাইটোকোড ফাইলটি দেখছেন তা বোঝাচ্ছে না বা OOP তত্ত্বে ক্লাস বনাম অবজেক্টের ধারণার মধ্যে কোনও বিভ্রান্তি।
এই '.class' পদ্ধতিটি জাভাতে কোড প্রতিবিম্বের জন্য ব্যবহৃত হয়। সাধারণত আপনি আপনার শ্রেণীর জন্য মেটা ডেটা সংগ্রহ করতে পারেন যেমন সম্পূর্ণ যোগ্য শ্রেণীর নাম, ধ্রুবকের তালিকা, সর্বজনীন ক্ষেত্রের তালিকা ইত্যাদি etc.
সমস্ত বিবরণ পেতে এই লিঙ্কগুলি দেখুন (ইতিমধ্যে উল্লিখিত):
https://docs.oracle.com/javase/tutorial/reflect/class/classNew.html
https://docs.oracle.com/javase/8/docs /api/java/lang/Class.html
সাধারণত আপনি যখন আপনার প্রকল্পটি তৈরি শুরু করেন আপনি এখনই প্রতিবিম্বটি ব্যবহার করার পরিকল্পনা করবেন না। এটি এমন কিছু যা আপনি জানেন যে ইতিমধ্যে কার্যকরী কোড পরিচালনা করার চেষ্টা করার পরে আপনার প্রয়োজন। আপনার প্রোগ্রামের একাধিক ইনস্ট্যান্স পরিচালনা করার জন্য আপনাকে অনেক সময় এটির প্রয়োজন হয়। কোনও কিছু ইতিমধ্যে সংজ্ঞায়িত হয়েছে কিনা তা নির্ধারণ করতে আপনি প্রতিটি নির্দিষ্ট 'ক্লোন' সনাক্ত করতে বা ফাংশনগুলির সংখ্যা গণনা করতে বা কেবলমাত্র আপনার শ্রেণীর নির্দিষ্ট উদাহরণের বিশদটি লগইন করতে চান।
যদি কোনও .class
উপলভ্যতা উপলব্ধ না থাকে তবে কোনও বর্গের জন্য সম্পর্কিত ক্লাস অবজেক্টটি পেতে সিনট্যাক্স ব্যবহার করা হয় অন্যথায় আপনি ক্লাস অবজেক্ট পেতে getClass () পদ্ধতিটি ব্যবহার করতে পারেন। যেহেতু, আদিম ডেটা ধরণের কোনও উদাহরণ নেই, তাই আমাদের আদিম উপাত্ত টাইপের .class
জন্য সিনট্যাক্স ব্যবহার করতে হবে ।
package test;
public class Test {
public static void main(String[] args)
{
//there is no instance available for class Test, so use Test.class
System.out.println("Test.class.getName() ::: " + Test.class.getName());
// Now create an instance of class Test use getClass()
Test testObj = new Test();
System.out.println("testObj.getClass().getName() ::: " + testObj.getClass().getName());
//For primitive type
System.out.println("boolean.class.getName() ::: " + boolean.class.getName());
System.out.println("int.class.getName() ::: " + int.class.getName());
System.out.println("char.class.getName() ::: " + char.class.getName());
System.out.println("long.class.getName() ::: " + long.class.getName());
}
}
আমি মনে করি যে এখানে কীটি একটি শ্রেণি এবং একটি অবজেক্টের মধ্যে পার্থক্য বোঝা। একটি বিষয় একটি শ্রেণীর উদাহরণ an তবে পুরোপুরি অবজেক্ট-ওরিয়েন্টেড ভাষায় ক্লাসও একটি অবজেক্ট । সুতরাং কলিংটি .class
সেই শ্রেণীর শ্রেণীর অবজেক্টের রেফারেন্স পায় যা পরে হেরফের হতে পারে।
in a fully object-oriented language, a Class is also an Object
? <উদ্ধৃতি আবশ্যক>
ক্লাস আক্ষরিক এমন একটি অভিব্যক্তি যা একটি শ্রেণীর নাম, ইন্টারফেস, অ্যারে বা আদিম ধরণের নাম বা সিউডো-টাইপ শূন্যপদ এবং তার পরে একটি '' থাকে। এবং টোকেন বর্গ। জেডিকে ৫.০ এর একটি পরিবর্তন হ'ল ক্লাস জাভা.এলং.ক্লাসটি জেনেরিক java.lang.Class Class<T>
, তাই:
Class<Print> p = Print.class;
এখানে উল্লেখ:
https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html
http://docs.oracle.com/javase/tutorial/extra/generics/literals.html
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.2