.ক্লাস জাভা মানে কি?


149

.classজাভা মানে কি ? উদাহরণস্বরূপ, যদি আমি একটি শ্রেণি তৈরি করি Print। কি Print.classফিরে আসে?



আমি ভয় করি আপনি কী জিজ্ঞাসা করছেন তা আমি পুরোপুরি বুঝতে পারি না। আপনি যদি আরও কিছুটা ব্যাখ্যা করতে পারেন তবে কেউ আপনাকে আরও দরকারী তথ্য সরবরাহ করতে সক্ষম হতে পারে
পল ওয়াকার

28
এটি অবশ্যই আমার কাছে বাস্তব প্রশ্নের মতো মনে হচ্ছে। আমি নিজেই এই প্রশ্নটি জিজ্ঞাসা করছিলাম এবং দ্রুত গুগল অনুসন্ধানের পরে নিজেকে এখানে পেয়েছি। আমার ধারণা যদি আমার প্রশ্নটি আসল না হত তবে আমার বিরক্ত করা উচিত হয়নি!
ডাক্তার জোন্স

1
এছাড়াও, আমি মনে করি নির্দিষ্ট অনুসন্ধান স্ট্রিংয়ের বিশ্রীতার কারণে এই প্রশ্নটি সম্পর্কে খুব কম লিখিত বা সন্ধানযোগ্য। উপরে উল্লিখিত এপিআই ডক্স ব্যতীত আমি অন্য কোথাও উল্লেখ করা এই স্বরলিপিটি কখনই দেখিনি (যদিও আপনি প্রায়শই এটি প্রতিচ্ছবি হিসাবে ব্যবহৃত দেখেন)।
jordanpg

2
@ ম্যাডপ্রোগ্রামার ওপি .classসিন্টেক্স সম্পর্কে জিজ্ঞাসা করছে যা ঘটনাক্রমে .classফাইল নাম এক্সটেনশনের সাথে সম্পর্কিত ।
jordanpg

উত্তর:


143

আপনি যখন .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());

2
ক্লাস অবজেক্টের সাথে কিছু করা জিনিস কী কী?
কেভিন

7
@ কেভিন java.lang.Class এর জন্য API ডকুমেন্টেশন দেখুন ।
প্যাট্রিসিয়া শানাহান

অ্যাপ্লিকেশন: ব্যক্তিগত ক্ষেত্র অ্যাক্সেস, উদাহরণস্বরূপ: Writer.class.getDeclaredField("writeBuffer")
jordanpg

2
তাহলে কি ধরণের Print.class?
জিপেইং ইয়াং

1
এবং কীভাবে অ্যান্ড্রয়েড হ্যান্ডেল করে new Intent(this, Activity.class? এটি class Activityপ্রতিটি শ্রেণীর তুলনা করে অনুসন্ধান করার চেষ্টা করবে ?
ঝিপং ইয়াং

56

.class যখন ক্লাস উপলব্ধ না থাকে তখন ব্যবহার করা হয়।

.getClass() যখন ক্লাস উপলভ্য থাকে তখন ব্যবহৃত হয়।

object.getClass() প্রদত্ত বস্তুর শ্রেণি প্রদান করে।

উদাহরণ স্বরূপ:

String string = "hello";
System.out.println(string.getClass().toString());

এটি আউটপুট দেবে:

class java.lang.String

এটি স্ট্রিং অবজেক্টের ক্লাস :)


7
getClass()ক্লাসের কোনও অবজেক্টের দিকে যদি আপনার কাছে রেফারেন্স থাকে তবেই তা কার্যকর। ClassName.classএমনকি ক্লাসের কোনও দৃষ্টান্ত না থাকলেও ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, বিবেচনা করুন Math.class। প্রতিটি নির্দিষ্ট পরিস্থিতির জন্য সঠিক।
প্যাট্রিসিয়া শানাহান

উজ্জ্বল ব্যাখ্যা। It.Love বিন্দু কিভাবে আপনি মধ্যে পার্থক্য চিহ্নিত ডান .classএবং.getClass().
Sevastyan Savanyuk

6

যদি কোনও জিনিসের উদাহরণ পাওয়া যায়, তবে তার ক্লাসটি পাওয়ার সহজতম উপায় হ'ল আবেদন করা Object.getClass()

দ্য .classসিনট্যাক্স

টাইপটি উপলভ্য থাকলেও কোনও উদাহরণ নেই তবে .classটাইপের নাম যুক্ত করে কোনও ক্লাস নেওয়া সম্ভব । এটি আদিম ধরণের ক্লাস পাওয়ার সহজতম উপায়।

boolean b;
Class c = b.getClass();   // compile-time error

Class c = boolean.class;  // correct

ক্লাস সম্পর্কে : docs.oracle.com দেখুন


6

কেবল স্পষ্ট করে বলতে গেলে, এই '.ক্লাস' পদ্ধতিটি জাভা কোড সংকলনের পরে আপনি যে বাইটোকোড ফাইলটি দেখছেন তা বোঝাচ্ছে না বা 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

সাধারণত আপনি যখন আপনার প্রকল্পটি তৈরি শুরু করেন আপনি এখনই প্রতিবিম্বটি ব্যবহার করার পরিকল্পনা করবেন না। এটি এমন কিছু যা আপনি জানেন যে ইতিমধ্যে কার্যকরী কোড পরিচালনা করার চেষ্টা করার পরে আপনার প্রয়োজন। আপনার প্রোগ্রামের একাধিক ইনস্ট্যান্স পরিচালনা করার জন্য আপনাকে অনেক সময় এটির প্রয়োজন হয়। কোনও কিছু ইতিমধ্যে সংজ্ঞায়িত হয়েছে কিনা তা নির্ধারণ করতে আপনি প্রতিটি নির্দিষ্ট 'ক্লোন' সনাক্ত করতে বা ফাংশনগুলির সংখ্যা গণনা করতে বা কেবলমাত্র আপনার শ্রেণীর নির্দিষ্ট উদাহরণের বিশদটি লগইন করতে চান।


3

যদি কোনও .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());
       }
    }

1

আমি মনে করি যে এখানে কীটি একটি শ্রেণি এবং একটি অবজেক্টের মধ্যে পার্থক্য বোঝা। একটি বিষয় একটি শ্রেণীর উদাহরণ an তবে পুরোপুরি অবজেক্ট-ওরিয়েন্টেড ভাষায় ক্লাসও একটি অবজেক্ট । সুতরাং কলিংটি .classসেই শ্রেণীর শ্রেণীর অবজেক্টের রেফারেন্স পায় যা পরে হেরফের হতে পারে।


4
in a fully object-oriented language, a Class is also an Object? <উদ্ধৃতি আবশ্যক>
স্যাম ডুফেল 4'14

0

ক্লাস আক্ষরিক এমন একটি অভিব্যক্তি যা একটি শ্রেণীর নাম, ইন্টারফেস, অ্যারে বা আদিম ধরণের নাম বা সিউডো-টাইপ শূন্যপদ এবং তার পরে একটি '' থাকে। এবং টোকেন বর্গ। জেডিকে ৫.০ এর একটি পরিবর্তন হ'ল ক্লাস জাভা.এলং.ক্লাসটি জেনেরিক 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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.