জাভাতে নতুন হওয়ার কারণে আমি শ্রেণি এবং প্রকারের ধারণাগুলির মধ্যে বিভ্রান্ত । উদাহরণ হিসেবে বলা যায়, should বস্তুর "Hello World!"
অন্তর্গত টাইপ String
বা বর্গ String
? না হয় দুজনেই?
জাভাতে নতুন হওয়ার কারণে আমি শ্রেণি এবং প্রকারের ধারণাগুলির মধ্যে বিভ্রান্ত । উদাহরণ হিসেবে বলা যায়, should বস্তুর "Hello World!"
অন্তর্গত টাইপ String
বা বর্গ String
? না হয় দুজনেই?
উত্তর:
একটি শ্রেণি একটি প্রকার। একটি ইন্টারফেস একটি প্রকার। আদিম এক প্রকার। একটি অ্যারে হ'ল এক প্রকার।
সুতরাং, প্রতিটি ধরণের হয় হয় একটি শ্রেণি (একটি এনাম ধ্রুবক সহ), একটি ইন্টারফেস, একটি আদিম, বা একটি অ্যারে।
দুটি ধরণের স্বতন্ত্র বিভাগ রয়েছে: আদিম ধরণ এবং রেফারেন্স প্রকার:
Object
। রেফারেন্স প্রকারগুলি হ'ল শ্রেণীর ধরণ (এনাম প্রকার সহ), ইন্টারফেসের ধরণ এবং অ্যারের প্রকারগুলি।প্রতিটি তথ্যের টুকরোতে একটি ধরণের থাকে যা এর কাঠামোটিকে সংজ্ঞায়িত করে, যথা এটি কতটা মেমরি গ্রহণ করে, কীভাবে এটি ছড়িয়ে দেওয়া হয় এবং আরও গুরুত্বপূর্ণভাবে আপনি কীভাবে এটির সাথে ইন্টারঅ্যাক্ট করতে পারবেন।
আদিম ধরণের উদাহরণ:
int
float
char
boolean
শ্রেণীর ধরণের উদাহরণ:
ইন্টারফেস ধরণের উদাহরণ:
অ্যারের ধরণের উদাহরণ:
int[]
String[]
Integer[][][]
মূলত, আপনি ভেরিয়েবল হিসাবে উল্লেখ করতে পারেন এমন যে কোনও কিছু রয়েছে এবং শ্রেণিগুলি এক প্রকারের kind
এখানে আরও তথ্য: http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html
টিএলডিআর - ক্লাস জাভা অন্যতম ধরণ।
দ্রষ্টব্য - উত্তরটি পুরোপুরি বুঝতে, আপনার জাভাতে জেনেরিক সম্পর্কে কিছুটা ধারণা থাকতে হবে।
পার্থক্যটি বোঝার জন্য প্রথমে জাভাতে টাইপ কী তা বুঝতে পারি ।
মতে JLS দঃপূঃ 10 ,
দুই ধরণের আছে ধরনের : জাভা প্রোগ্রামিং ভাষায় আদিম ধরনের ( §4.2 ) এবং রেফারেন্স ধরনের (§4.3)।
আদিম প্রকার কি?
ক) অবিচ্ছেদ্য প্রকারগুলি বাইট, শর্ট, ইনট এবং লম্বা , যার মানগুলি 8-বিট, 16-বিট, 32-বিট এবং 64-বিট স্বাক্ষরিত দুটি এর পরিপূরক পূর্ণসংখ্যার যথাক্রমে এবং চর, যার মানগুলি 16-বিট ইউটিএফ -16 কোড ইউনিট (.13.1) উপস্থাপন করে স্বাক্ষরযুক্ত পূর্ণসংখ্যাগুলি।
খ) ভাসমান-পয়েন্টের ধরণগুলি হ'ল ভাসমান , যার মানগুলিতে 32-বিট আইইইইই 754 ফ্লোটিং-পয়েন্ট সংখ্যা অন্তর্ভুক্ত থাকে এবং ডাবল , যার মানগুলি 64-বিট আইইইইই 754 ভাসমান-পয়েন্ট সংখ্যা অন্তর্ভুক্ত করে।
গ) বুলিয়ান ধরণের ঠিক দুটি মান রয়েছে: সত্য এবং মিথ্যা।
এখন, আসুন রেফারেন্স টাইপ কি?
এখানে চার ধরণের রেফারেন্স রয়েছে: শ্রেণীর প্রকার ( §8.1 ), ইন্টারফেসের ধরণ ( §9.1 ), ধরণের ভেরিয়েবল ( §4.4 ), এবং অ্যারের প্রকার ( §10.1 )।
আসুন আমরা একে একে আলোচনা করব।
আপনি যদি জেএলএসে দেখতে পান তবে ক্লাসটি এই জাতীয় সংজ্ঞাযুক্ত :
একটি শ্রেণীর ঘোষণা একটি নতুন নামযুক্ত রেফারেন্স ধরণ নির্দিষ্ট করে।
শ্রেণির ঘোষণা দুটি ধরণের রয়েছে: সাধারণ শ্রেণির ঘোষণা এবং এনাম ঘোষণা ।
ClassDeclaration:
NormalClassDeclaration
EnumDeclaration
NormalClassDeclaration:
{ClassModifier} class TypeIdentifier [TypeParameters] [Superclass] [Superinterfaces] ClassBody
আপনি দেখুন যে [TypeParameters]
, এটি দেখায় যে শ্রেণীর ধরণের মধ্যে সেই জেনেরিক ক্লাসগুলিও রয়েছে।
class Example<T>{
}
ক্লাস টাইপ কল করা হবে Example
সংক্ষেপে, একটি শ্রেণির ধরণটি আমাদের এনামগুলিকে, আমাদের নিয়মিত (নন জেনেরিক) String
ইত্যাদি এবং আমাদের জেনেরিক ক্লাসগুলিকেও অন্তর্ভুক্ত করে।
একইভাবে, আমি আশা করি ইন্টারফেস এবং অ্যারের প্রকারগুলিও পরিষ্কার। অ্যারে টাইপ দ্বারা আমরা ভালো মানে int[]
, String[]
ইত্যাদি
আসুন শেষ অংশে আসি - ভেরিয়েবল টাইপ করুন। তারা কি?
একটি ধরণের পরিবর্তনশীল হ'ল শ্রেণিবদ্ধ, ইন্টারফেস, পদ্ধতি এবং কনস্ট্রাক্টর বডির ধরণ হিসাবে ব্যবহৃত একটি অযোগ্য সনাক্তকারী।
আসুন এর নীচে জেএলএসে উদাহরণ দিয়ে বুঝতে পারি।
class Test {
<T extends C & I> void test(T t) {
t.mI(); // OK
t.mCPublic(); // OK
t.mCProtected(); // OK
t.mCPackage(); // OK
}
}
আপনি দেখতে পাচ্ছেন যে পদ্ধতি প্যারামিটারে আপনার অবজেক্ট টাইপযুক্ত T
। হ্যাঁ, T
এটি টাইপ ভেরিয়েবল এবং এটি / উল্লেখ হিসাবে ব্যবহৃত হতে পারে। হ্যাঁ তাই হয়। (এই অদ্ভুত উদাহরণটি বুঝতে পারি নি - জাভাতে জেনেরিক পদ্ধতিটি কী তা শিখুন)
এটি উত্তর সম্পূর্ণ করে।
"প্রকার" আরও অন্তর্ভুক্ত বিভাগ। জাভাতে ভেরিয়েবলের তিন ধরণের প্রকার থাকতে পারে: 8 টি "আদিম" প্রকার যেমন ইন্ট এবং ফ্লোট, ইন্টারফেস এবং ক্লাস। মান (ভেরিয়েবলের বিপরীতে) আদিম বা শ্রেণীর উদাহরণ হতে পারে।
"প্রকার" এটি কী ধরণের ডেটা হয় তা সংজ্ঞায়িত করে
উদাহরণস্বরূপ: "হ্যালো ওয়ার্ল্ড" একটি স্ট্রিং -> "হ্যালো ওয়ার্ল্ড" স্ট্রিং টাইপ (স্ট্রিং ইন্টের মতো নয় প্রিমিটিভ ডেটা .. তাই আমরা বলতে পারি "হ্যালো ওয়ার্ল্ড" স্ট্রিং ক্লাস টাইপ)
10 হ'ল একটি আন্ত -> 10 একটি পূর্ণসংখ্যা ডেটা টাইপ।