CodeGym /Java Blog /এলোমেলো /জাভাতে র‍্যাপার ক্লাস
John Squirrels
লেভেল 41
San Francisco

জাভাতে র‍্যাপার ক্লাস

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

একটি মোড়ক ক্লাস কি?

একটি মোড়ক একটি বিশেষ শ্রেণী যা অভ্যন্তরীণভাবে একটি আদিম সঞ্চয় করে। কিন্তু যেহেতু এটি একটি ক্লাস, আপনি এটির উদাহরণ তৈরি করতে পারেন। তারা অভ্যন্তরীণভাবে আদিম মান সংরক্ষণ করে, কিন্তু এখনও বাস্তব বস্তু। মোড়ক শ্রেণীর নামগুলি তাদের সংশ্লিষ্ট আদিম নামগুলির সাথে খুব মিল (বা হুবহু একই)। সুতরাং, তারা মনে রাখা সহজ.
আদিম ডেটা প্রকারের জন্য মোড়ক ক্লাস
আদিম ডেটা প্রকার মোড়ক ক্লাস
int পূর্ণসংখ্যা
সংক্ষিপ্ত সংক্ষিপ্ত
দীর্ঘ দীর্ঘ
বাইট বাইট
ভাসা ভাসা
দ্বিগুণ দ্বিগুণ
চর চরিত্র
বুলিয়ান বুলিয়ান
মোড়ক অবজেক্ট অন্য যে কোন বস্তুর মত একই ভাবে তৈরি করা হয়:

public static void main(String[] args) {

   Integer i = new Integer(682);
  
   Double d = new Double(2.33);
  
   Boolean b = new Boolean(false);
}
র‍্যাপার ক্লাস আমাদের আদিম প্রকারের ত্রুটিগুলি প্রশমিত করতে দেয়। সবচেয়ে স্পষ্ট যে আদিমদের পদ্ধতি নেই। উদাহরণস্বরূপ, তাদের একটি toString() পদ্ধতি নেই , তাই আপনি উদাহরণস্বরূপ, একটি int-কে স্ট্রিং- এ রূপান্তর করতে পারবেন না । কিন্তু পূর্ণসংখ্যা মোড়ানো ক্লাস এটি সহজ করে তোলে।

public static void main(String[] args) {

   Integer i = new Integer(432);
  
   String s = i.toString();
}
যাইহোক, অন্য দিকে রূপান্তর করা আরও জটিল হতে পারে। ধরা যাক আমাদের একটি স্ট্রিং আছে , যা আমরা নিশ্চিতভাবে জানি যে একটি সংখ্যা রয়েছে। যাই হোক না কেন, স্ট্রিং থেকে সংখ্যাটি বের করতে এবং এটিকে একটি সংখ্যায় রূপান্তর করতে একটি আদিম int ব্যবহার করার কোন স্থানীয় উপায় নেই । কিন্তু, আমরা মোড়ক ক্লাস সঙ্গে করতে পারেন.

public static void main(String[] args) {

   String s = "1166628";

   Integer i = Integer.parseInt(s);

   System.out.println(i);
}
আউটপুট:
1166628
আমরা সফলভাবে স্ট্রিং থেকে একটি সংখ্যা বের করেছি এবং এটিকে পূর্ণসংখ্যা রেফারেন্স ভেরিয়েবল i এ বরাদ্দ করেছি । উপায় দ্বারা, রেফারেন্স সংক্রান্ত. আপনি ইতিমধ্যেই জানেন যে আর্গুমেন্টগুলি বিভিন্ন উপায়ে পদ্ধতিতে প্রেরণ করা হয়: মান অনুসারে আদিম, এবং রেফারেন্স দ্বারা বস্তু। আপনার নিজস্ব পদ্ধতি তৈরি করার সময় আপনি এই জ্ঞানটি ব্যবহার করতে পারেন: উদাহরণস্বরূপ, যদি আপনার পদ্ধতি ভগ্নাংশ সংখ্যা ব্যবহার করে কিন্তু রেফারেন্স দ্বারা পাস করার জন্য আপনার যুক্তির প্রয়োজন হয়, তাহলে আপনি ডাবল / ফ্লোট এর পরিবর্তে পদ্ধতিতে ডাবল / ফ্লোট আর্গুমেন্ট পাস করতে পারেন । মোড়ক ক্লাসের পদ্ধতি ছাড়াও, তাদের স্ট্যাটিক ক্ষেত্রগুলিও খুব সুবিধাজনক হতে পারে। উদাহরণস্বরূপ, কল্পনা করুন আপনার কাছে নিম্নলিখিত কাজটি রয়েছে: সর্বাধিক সম্ভাব্য প্রদর্শন করুনint মান, ন্যূনতম সম্ভাব্য মান অনুসরণ করে। এই সমস্যা বরং মৌলিক বলে মনে হয়। কিন্তু Google ছাড়া, আপনি এটি করতে পারবেন না। তবে মোড়কগুলি আপনাকে এই জাতীয় "জাগতিক কাজগুলি" সহজেই পরিচালনা করতে দেয়:

public class Main {
   public static void main(String[] args) {

       System.out.println(Integer.MAX_VALUE);
       System.out.println(Integer.MIN_VALUE);
   }
}
এই ক্ষেত্রগুলি আপনাকে আরও গুরুতর কাজগুলি সম্পাদন করা থেকে বিভ্রান্ত করা থেকে বিরত রাখে। 2147483647- এ টাইপ করা (যা MAX_VALUE-এর মান হতে পারে) কোনো ছোটখাটো কৃতিত্ব নয়! :) তাছাড়া, আগের একটি পাঠে, আমরা উল্লেখ করেছি যে মোড়কের বস্তুগুলি অপরিবর্তনীয়।

public static void main(String[] args) {

   Integer a = new Integer(0);
   Integer b = new Integer(0);

   b = a;
   a = 1;
   System.out.println(b);
}
আউটপুট:
0
বস্তুর অবস্থা মূলত a দ্বারা নির্দেশিত হয়েছে পরিবর্তন হয়নি (কারণ b এর মানও পরিবর্তিত হবে)। স্ট্রিং s এর মতো , র্যাপার অবজেক্টের অবস্থা পরিবর্তন করার পরিবর্তে, মেমরিতে একটি সম্পূর্ণ নতুন অবজেক্ট তৈরি করা হয়। তাহলে, জাভার নির্মাতারা শেষ পর্যন্ত ভাষাতে আদিম প্রকারগুলি ছেড়ে দেওয়ার সিদ্ধান্ত নিয়েছিলেন কেন? যেহেতু সবকিছুই একটি অবজেক্ট হওয়া উচিত, এবং আমাদের কাছে র‍্যাপার ক্লাস আছে যা আদিমরা যা প্রকাশ করে তা প্রকাশ করতে পারে, কেন কেবল ভাষাতে মোড়কগুলি রাখা এবং আদিমগুলিকে সরিয়ে দেওয়া নয়? উত্তরটি সহজ: কর্মক্ষমতা। আদিম প্রকারগুলিকে আদিম বলা হয় কারণ তাদের অনেকগুলি "হেভিওয়েট" বস্তুর বৈশিষ্ট্যের অভাব রয়েছে। হ্যাঁ, বস্তুর অনেক সুবিধাজনক পদ্ধতি আছে, কিন্তু আপনি সবসময় তাদের প্রয়োজন হয় না। কখনও কখনও, আপনার যা প্রয়োজন তা হল সংখ্যা 33, বা 2.62, বা সত্য / মিথ্যা । এমন পরিস্থিতিতে যেখানে বস্তুর সুবিধাগুলি গুরুত্বপূর্ণ নয় এবং প্রোগ্রামটি কাজ করার জন্য প্রয়োজন হয় না, আদিম জিনিসগুলি টাস্কের জন্য অনেক বেশি উপযুক্ত।
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION