একটি উদাহরণে বিবেচনা করুন যেখানে আপনাকে কোনও অঞ্চলে জীবন্ত জিনিসের একটি তালিকা তৈরি করতে হবে। এটি মানুষ, প্রাণী বা উদ্ভিদ কিনা তা বিবেচ্য নয়। সমস্ত গুরুত্বপূর্ণ একটি জীবন্ত জিনিস। এই ক্ষেত্রে, আপনি তাদের সমস্তকে 'জীবিত জিনিস' হিসাবে গোষ্ঠীভুক্ত করবেন এবং তাদের শ্রেণিবদ্ধ করবেন না। একইভাবে, যখন আপনাকে কিছু ডেটা সঞ্চয় করতে হয়, তখন আপনার কাছে কী গুরুত্বপূর্ণ তা হ'ল ডেটাটাইপ নয় এবং এটি যেখানে আপনি জেনেরিক্স ব্যবহার করেন। জেনারিক্স ইন একটি ভাষা বৈশিষ্ট্য যা জেনেরিক প্রকার এবং পদ্ধতিগুলির ব্যবহারের অনুমতি দেয়।
নীচে এই নিবন্ধে আমি যে বিষয়গুলি আবরণ করব তার তালিকা নীচে দেওয়া হল:
জাভা মধ্যে জেনেরিক্স কি?
জেনারিক্স এমন একটি শব্দ যা জেনেরিক ধরণ এবং পদ্ধতির সংজ্ঞা এবং ব্যবহারের সাথে সম্পর্কিত ভাষা বৈশিষ্ট্যের একটি সেটকে বোঝায়। জাভা জেনেরিক পদ্ধতিগুলি নিয়মিত ডেটা ধরণের এবং পদ্ধতিগুলির থেকে পৃথক। জেনারিক্সের আগে, আমরা এটি ব্যবহার করেছিলাম যেকোন ধরণের বস্তু সঞ্চয় করতে অ জেনেরিক । এখন, জেনেরিক্স জোর করে প্রোগ্রামার একটি নির্দিষ্ট ধরণের অবজেক্টস সঞ্চয় করতে।
জাভাতে জেনেরিকস কী তা আপনি এখন জানেন তাই আরও এগিয়ে চলুন এবং আপনার জাভা জেনেরিকসের প্রয়োজন কেন তা বুঝতে দিন।
জাভা জেনেরিক্স কেন?
আপনি যদি তাকান ক্লাস, তাহলে আপনি লক্ষ্য করবেন যে বেশিরভাগ শ্রেণি অবজেক্ট টাইপের পরামিতি / আর্গুমেন্ট গ্রহণ করে। মূলত, এই ফর্মটিতে, তারা যে কোনও জাভা টাইপকে আর্গুমেন্ট হিসাবে নিতে পারে এবং একই জিনিস বা যুক্তিটি ফিরিয়ে দিতে পারে। তারা মূলত হয় ভিন্নধর্মী অর্থাৎ একই ধরণের নয়।
কখনও কখনও জাভা অ্যাপ্লিকেশনে, ইনপুটটির ডেটা টাইপ ঠিক করা হয় না। ইনপুট একটি হতে পারে পূর্ণসংখ্যা , প্রতি ভাসা বা । ইনপুট বরাদ্দ করার জন্য ডান ডায়াটাইপের, পূর্ববর্তী চেকগুলি পরিচালনা করতে হয়েছিল। Traditionalতিহ্যগত পদ্ধতির ইনপুট নেওয়ার পরে, ইনপুটটির ডেটাটাইপটি পরীক্ষা করা হয়েছিল এবং তারপরে ডান ডেটাটাইপের ভেরিয়েবলকে বরাদ্দ করা হয়েছিল। যখন এই যুক্তি ব্যবহার করা হয়েছিল, কোড এবং প্রয়োগের সময়টির দৈর্ঘ্য বৃদ্ধি করা হয়েছিল। এটি এড়াতে, জেনেরিকস চালু হয়েছিল । আপনি যখন জেনেরিক্স ব্যবহার করেন, কোডের পরামিতিগুলি সংকলনের সময় স্বয়ংক্রিয়ভাবে চেক করা হয় এবং এটি ডেটাটাইপটি ডিফল্টরূপে সেট করে। তাই আপনার এখানে জাভাতে জেনেরিকের ধারণাটি দরকার।
সি ++ এ অ্যারে সাজান
এখন আপনি জেনারিক্স সম্পর্কে কিছু অন্তর্দৃষ্টি অর্জন করেছেন, আসুন এগিয়ে চলুন এবং কীভাবে বিভিন্ন উপায় তা দেখুনজেনারিক্স উত্স কোডে প্রয়োগ করা যেতে পারে।
জাভা জেনারিক্স এর প্রকার
জেনারিক্সগুলিকে জাভাতে প্রয়োগ করার জন্য 4 টি বিভিন্ন উপায় রয়েছে এবং সেগুলি নিম্নরূপ:
- জেনেরিক টাইপ ক্লাস
- জেনেরিক ইন্টারফেস
- জেনেরিক পদ্ধতি
- জেনেরিক কনস্ট্রাক্টর
এখন আসুন বুঝতে পারি কীভাবে জেনেরিকগুলি গভীরভাবে টাইপ শ্রেণিতে প্রয়োগ করা যেতে পারে।
1. জেনেরিক টাইপ ক্লাস
কোনও শ্রেণি যদি এক বা একাধিক ধরণের ভেরিয়েবল ঘোষণা করে তবে তাকে জেনেরিক বলা হয়। এই পরিবর্তনশীল প্রকারগুলি এর ধরণের পরামিতি হিসাবে পরিচিত । আসুন একটি উদাহরণের সাহায্যে এটি বুঝতে পারি। নীচের উদাহরণে, আমি একটি সম্পত্তি সহ একটি শ্রেণি তৈরি করব এক্স এবং সম্পত্তির ধরণ একটি অবজেক্ট।
জেনেরিক্লাস ক্লাস {বেসরকারী অবজেক্ট এক্স পাবলিক শূন্য সেট (অবজেক্ট এক্স) {this.x = x} পাবলিক অবজেক্ট পান () {রিটার্ন x}}
এখানে, আপনি একবার নির্দিষ্ট ধরণের সাথে ক্লাসটি শুরু করলে ক্লাসটি কেবলমাত্র সেই নির্দিষ্ট ধরণের সাথেই ব্যবহার করা উচিত। যেমন আপনি যদি ক্লাসের একটি উদাহরণটি মান ধরে রাখতে চান এক্স ধরণের স্ট্রিং ‘, তারপরে প্রোগ্রামার সেট করা উচিত এবং একমাত্র পাওয়া উচিত প্রকার। যেহেতু আমি সম্পত্তিটির ধরণটিকে অবজেক্টে ঘোষণা করেছি, তাই এই বিধিনিষেধটি কার্যকর করার কোনও উপায় নেই। একজন প্রোগ্রামার যে কোনও অবজেক্ট সেট করতে পারে এবং যে কোনও রিটার্ন মান ধরণের আশা করতে পারে পদ্ধতি পান যেহেতু সমস্ত জাভা টাইপগুলি হ'ল সাব টাইপ ক্লাস
এই ধরণের সীমাবদ্ধতা প্রয়োগ করতে, আমরা নীচে জেনেরিকগুলি ব্যবহার করতে পারি:
জেনেরিক্লাস ক্লাস {// টি এর অর্থ 'প্রকারের' প্রাইভেট টি এক্স পাবলিক শূন্য সেট (টি এক্স) {this.x = x} পাবলিক টি পান () {রিটার্ন x}}
এখন আপনি আশ্বস্ত হতে পারেন যে ক্লাসটি ভুল ধরণের সাথে অপব্যবহার করা হবে না। এর একটি সাধারণ উদাহরণ' জেনেরিক্লাস 'নীচের মত প্রদর্শিত হচ্ছে:
কীভাবে ডাবলটিকে ইনট জাভাতে রূপান্তর করতে হয়
জেনেরিক্লাস উদাহরণ = নতুন জেনেরিক্লাস () উদাহরণ.set ('এডুরেকা') উদাহরণ.set (10) // এটি সংকলনের সময় ত্রুটি বাড়িয়ে তুলবে
সুতরাং এটি কিভাবে এটি কাজ করে। এইউপমাটি ইন্টারফেসের জন্যও সত্য। আসুন আমরা বুঝতে পারি কীভাবে জেনারিক টাইপের তথ্য জাভাতে ইন্টারফেসে ব্যবহার করা যেতে পারে।
জেনেরিক ইন্টারফেস
একটি বিমূর্ত ডেটা ধরণের বোঝায়। তারা গ্রহণ করে তাদের প্রতিনিধিত্বের বিশদ থেকে স্বতন্ত্রভাবে হেরফের করা হবে to এছাড়াও, এগুলি একটি শ্রেণিবিন্যাস গঠন করে ভাষা। আসুন বুঝতে পারি যে জাভাতে ইন্টারফেসে জেনেরিক টাইপ কীভাবে প্রয়োগ করা যেতে পারে।
// জেনেরিক ইন্টারফেস সংজ্ঞা ইন্টারফেস জেনেরিক ইন্টারফেস {টি 2 পারফর্ম এক্সেক্সিউশন (টি 1 এক্স) টি 1 রিভার্সএক্সিকিউশন (টি 2 এক্স)} // একটি শ্রেণি প্রয়োগকারী জেনেরিক ইন্টারফেস বর্গ জেনেরিক্লাস জেনেরিক ইন্টারফেস প্রয়োগ করে {পাবলিক ইন্টিজার পারফর্ম এক্সেকশন (স্ট্রিং এক্স) execution // এক্সিকিউশন কোড} পাবলিক স্ট্রিং রিভার্সেক্স পূর্ণসংখ্যা x) execution // এক্সিকিউশন কোড}}
আমি আশা করি জেনারিক্স কীভাবে টাইপ ক্লাস এবং ইন্টারফেসে প্রয়োগ করা যেতে পারে তা আপনি বুঝতে সক্ষম হয়েছিলেন। এখন আসুন এই নিবন্ধটি আরও গভীরভাবে আবিষ্কার করুন এবং এটি কীভাবে পদ্ধতি এবং নির্মাতাদের জন্য সহায়ক।
৩. জেনেরিক পদ্ধতি
জেনেরিক পদ্ধতিগুলি জেনেরিক ক্লাসগুলির সাথে অনেকটা মিল। তারা কেবল একটি দিক থেকে একে অপরের থেকে পৃথক সুযোগ বা প্রকারের তথ্য কেবল পদ্ধতির অভ্যন্তরে। জেনেরিক পদ্ধতিগুলি তাদের নিজস্ব ধরণের পরামিতিগুলি প্রবর্তন করে।
আসুন এটি একটি উদাহরণ দিয়ে বুঝতে পারি। নীচে জেনেরিক পদ্ধতির একটি উদাহরণ যা ভেরিয়েবলের তালিকায় টাইপ পরামিতিগুলির সমস্ত উপস্থিতি খুঁজে পেতে ব্যবহার করা যেতে পারে।
পাবলিক স্ট্যাটিক ইন্ট কাউন্টআলঅ্যাকিউরেন্সস (টি [] তালিকা, টি উপাদান) {অবধি গণনা = 0 যদি (উপাদান == নাল) {এর জন্য (টি তালিকার উপাদান: তালিকা) যদি (listElement == নাল) গণনা ++} অন্য {জন্য (টি তালিকার উপাদান: তালিকা ) যদি (এলিমেন্ট.একভালস (listElement)) গণনা ++} রিটার্ন গণনা}
আপনি যদি একটি তালিকা পাস এই পদ্ধতিতে অনুসন্ধানের জন্য স্ট্রিং, এটি দুর্দান্ত কাজ করবে। তবে আপনি যদি স্ট্রিংয়ের তালিকায় একটি নম্বর খুঁজতে চেষ্টা করেন তবে এটি সংকলন সময় ত্রুটি দেবে।
এই সাদৃশ্যটিও নির্মাণকারীর মতো। আসুন জেনেরিক কন্সট্রাক্টরের জন্য উদাহরণ নিই এবং এটি কীভাবে কাজ করে তা বুঝতে পারি।
4. জেনেরিক কনস্ট্রাক্টর
নির্মাতাকে কোডের একটি ব্লক যা সদ্য তৈরি হওয়া অবজেক্টটি আরম্ভ করে। ক নির্মাতা জেতে একটি উদাহরণ পদ্ধতির অনুরূপ আভা তবে এটি কোনও পদ্ধতি নয় কারণ এর কোনও রিটার্নের ধরণ নেই। নির্মাতা ক্লাসের মতো একই নাম রয়েছে এবং এটি জেতে দেখায় আভা কোড এখন আসুন একটি উদাহরণ নিই এবং এটি কীভাবে কাজ করে তা বুঝতে দিন।
শ্রেণি মাত্রা - প্রাইভেট টি দৈর্ঘ্য প্রাইভেট টি প্রস্থ বেসরকারী টি উচ্চতা // জেনেরিক কনস্ট্রাক্টর পাবলিক ডাইমেনশন (টি দৈর্ঘ্য, টি প্রস্থ, টি উচ্চতা) {সুপার () এই. দৈর্ঘ্য = দৈর্ঘ্য এই। প্রস্থ = প্রস্থ এই উচ্চতা = উচ্চতা height}
উপরের উদাহরণে, মাত্রা শ্রেণীর নির্মাতার কাছে টাইপ তথ্য রয়েছে। সুতরাং আপনার কাছে কেবলমাত্র একক ধরণের সমস্ত বৈশিষ্ট্যের সাথে মাত্রার উদাহরণ থাকতে পারে। সুতরাং আপনি জেনেরিক টাইপ কনস্ট্রাক্টরকে এভাবে ব্যবহার করতে পারেন। আমি আশা করি আপনি জাভাতে জেনেরিকের ধরণগুলি বুঝতে পেরেছিলেন।
এখন আসুন আরও সরানো যাক এবং জাভায় জেনারিক্সের সুবিধাগুলি দেখুন।
জাভা জেনারিক্স এর সুবিধা
1. কোড পুনরায় ব্যবহারযোগ্যতা
আপনি কোনও কৌশল বা ক্লাস বা একটি রচনা করতে পারেন একবার এবং আপনার প্রয়োজন যে কোনও ধরণের জন্য ব্যবহার করুন।
2. স্বতন্ত্র প্রকারের ingালাইয়ের প্রয়োজন হয় না
মূলত, আপনি থেকে তথ্য উদ্ধার প্রতিবার, আপনাকে এটি টাইপকাস্ট করতে হবে। প্রতিটি পুনরুদ্ধারের কাজে টাইপকাস্টিং একটি প্রধান মাইগ্রেন। এই পদ্ধতির নির্মূল করার জন্য, জেনেরিকগুলি চালু করা হয়েছিল।
৩. একটি জেনেরিক অ্যালগোরিদম কার্যকর করা lement
এটি বিভিন্ন ধরণের আইটেমগুলিতে যে ধরণের সুরক্ষিত সেগুলি নিয়ে কাজ করে এমন অ্যালগরিদমগুলি গণনা করতে পারে।
এটি ছিল জাভা জেনারিক্সের সুবিধাগুলি সম্পর্কে। এটির সাথে আমরা জাভায় জেনারিক্স সম্পর্কিত এই নিবন্ধটির শেষে এসেছি। আমি আশা করি আপনি এটি তথ্যবহুল পেয়েছেন এবং জাভা জেনারিক্স বুঝতে আপনার সহায়তা করেছেন।
দেখুন এডুরেকা, বিশ্বস্ত জুড়ে 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা by আমরা আপনার যাতায়াতের প্রতিটি পদক্ষেপে আপনাকে সহায়তা করতে এখানে এই জাভা সাক্ষাত্কারের প্রশ্নগুলির পাশাপাশি হয়ে উঠার জন্য আমরা একটি পাঠ্যক্রম নিয়ে এসেছি যা জাভা ডেভেলপার হতে চান এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি করা হয়েছে। কোর্সটি আপনাকে জাভা প্রোগ্রামিংয়ে একটি প্রধান সূচনা দেওয়ার জন্য এবং হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।
জাভাতে প্রসারিত এবং প্রয়োগের মধ্যে পার্থক্য
আমাদের জন্য একটি প্রশ্ন আছে? এই 'জাভা জেনারিক্স' এর মন্তব্য বিভাগে এটি উল্লেখ করুন ”নিবন্ধ এবং যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।