কম্পিউটার

জাভা এই

কিভাবে জাভা এই কীওয়ার্ড ব্যবহার করবেন

আপনি যখন জাভাতে কোড করা শুরু করবেন, আপনি সম্ভবত this কীওয়ার্ডটি লক্ষ্য করবেন পদ্ধতি বা কনস্ট্রাক্টর ব্যবহার করা হচ্ছে। this কীওয়ার্ড পদ্ধতি বা কনস্ট্রাক্টরের ভিতরে বর্তমান অবজেক্টকে বোঝায় এবং জাভাতে বিস্তৃত ব্যবহার রয়েছে।

এই টিউটোরিয়ালে, আপনি জাভা এই কীওয়ার্ড সম্পর্কে এবং কীভাবে এবং কেন এটি ব্যবহার করা হয় সে সম্পর্কে শিখবেন। এই কীওয়ার্ডটি কার্যকরভাবে দেখানোর জন্য আমরা নিবন্ধ জুড়ে কয়েকটি উদাহরণও উল্লেখ করব।

জাভা পদ্ধতি এবং নির্মাণকারী

মেথড এবং কনস্ট্রাক্টর হল জাভাতে প্রোগ্রামিং এর দুটি গুরুত্বপূর্ণ অংশ।

ফাংশন, বা methods অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ যেমন বলা হয়, কোডের ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করে। উদাহরণস্বরূপ, একটি পদ্ধতি, যখন কার্যকর করা হয়, কনসোলে একটি অ্যারের বিষয়বস্তু মুদ্রণ করতে পারে, অথবা একটি প্রোগ্রামে ব্যবহারকারীর ইনপুটকে সহজতর করতে পারে৷

এখানে জাভাতে একটি পদ্ধতির উদাহরণ দেওয়া হল যা It’s Monday! প্রিন্ট করে কনসোলে:

পাবলিক ক্লাস প্রিন্টমেসেজ { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আর্গস) { System.out.println("আজ সোমবার!"); }}

যখন আমরা আমাদের কোডটি কার্যকর করি, নিম্নলিখিত আউটপুটটি কনসোলে ফিরে আসে:It’s Monday!

কনস্ট্রাক্টরগুলি পদ্ধতির অনুরূপ এবং যখন একটি বস্তুকে একটি প্রোগ্রামে ইনস্ট্যান্ট করা বা তৈরি করা হয় তখন তাদের আহ্বান করা হয়। এখানে একটি কন্সট্রাক্টরের একটি উদাহরণ যা day নামক একটি ইনস্ট্যান্স ভেরিয়েবলের মান সেট করে Monday যখন সোমবারের একটি উদাহরণ instantiate হয় এবং It’s প্রিন্ট করে , সপ্তাহের দিন অনুসরণ করে, কনসোলে:

<প্রি>ক্লাস সোমবার { ব্যক্তিগত সোমবার() { দিন ="সোমবার"; } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আর্গস) { সোমবারের_সপ্তাহের দিন =নতুন সোমবার(); System.out.println("এটি" + day_of_the_week.day); }}

আমাদের কোড ফিরে আসে:It’s Monday!

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

আপনি যদি কনস্ট্রাক্টর সম্পর্কে আরও জানতে আগ্রহী হন তবে আপনি জাভা কনস্ট্রাক্টরগুলির জন্য আমাদের সম্পূর্ণ গাইড পড়তে পারেন। এখন যেহেতু আমরা জাভা পদ্ধতি এবং কনস্ট্রাক্টরগুলির মৌলিক বিষয়গুলি অন্বেষণ করেছি, আমরা this নিয়ে আলোচনা শুরু করতে পারি কীওয়ার্ড এবং আপনি কীভাবে এটি আপনার কোডে ব্যবহার করতে পারেন।

জাভা এই কীওয়ার্ড

জাভাতে, this কীওয়ার্ড একটি পদ্ধতি বা একটি কন্সট্রাক্টরের ভিতরে বর্তমান বস্তুকে বোঝায়।

এটি ব্যাখ্যা করার জন্য, আসুন উপরে থেকে আমাদের উদাহরণ কনস্ট্রাক্টর ব্যবহার করি যা কনসোলে সপ্তাহের দিনটি প্রিন্ট করে। নিচের উদাহরণে, আমরা this এর মান প্রিন্ট করেছি এবং Monday() এর মান অবজেক্ট আমরা ইনস্ট্যান্টিয়েট করেছি:

<প্রি>ক্লাস সোমবার { ব্যক্তিগত স্ট্রিং দিন; ব্যক্তিগত সোমবার() { দিন ="সোমবার"; System.out.println(এটি); } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আর্গস) { সোমবারের_সপ্তাহের দিন =নতুন সোমবার(); System.out.println("এটি" + day_of_the_week.day); System.out.println(সপ্তাহের_দিন); }}

আমাদের কোড নিম্নলিখিত প্রদান করে:

Main@d716361এটি সোমবারMain@d716361

আমাদের আউটপুটের প্রথম লাইন হল this এর মান , যা কনসোলে প্রিন্ট করা হয় যখন Monday() বস্তু তাত্ক্ষণিক হয়. আমাদের আউটপুটের দ্বিতীয় লাইনটি হল It’s প্রিন্ট করার ফলাফল , তারপর day এর মান day_of_the_week বস্তু আমরা ঘোষণা. অবশেষে, আমরা day_of_the_week মান প্রিন্ট করি বস্তু।

আপনি দেখতে পাচ্ছেন, this এর মান এবং day_of_the_week বস্তু একই. এর মানে হল যে this কীওয়ার্ড একটি পদ্ধতি বা একটি কন্সট্রাক্টরের ভিতরে বর্তমান বস্তুকে বোঝায়।

জাভা এই ব্যবহারের ক্ষেত্রে

দুটি প্রধান পরিস্থিতিতে এই কীওয়ার্ড ব্যবহার করা মূল্যবান। এগুলো হল:

  • ভেরিয়েবলের নাম দ্ব্যর্থহীন করতে এটি ব্যবহার করা হচ্ছে
  • এটি একটি যুক্তি হিসাবে পাস করা

এই কীওয়ার্ডের একটি বৈকল্পিক, this() , কনস্ট্রাক্টর ওভারলোড করার সময়ও ব্যবহৃত হয়। যাইহোক, এটি এটির একটি আরও উন্নত ব্যবহার, এবং তাই আমরা এই নিবন্ধে এটি নিয়ে আলোচনা করব না৷

ভেরিয়েবল নামগুলিকে দ্ব্যর্থিত করতে এটি ব্যবহার করে

জাভাতে একটি স্কোপের ভিতরে দুই বা ততোধিক ভেরিয়েবলের একই নাম থাকতে পারে না। এর মানে হল যে আপনি যদি দুটি ভেরিয়েবল ঘোষণা করার চেষ্টা করেন এবং একই নাম ব্যবহার করেন তবে আপনার প্রোগ্রামের যুক্তি প্রভাবিত হবে৷

যাইহোক, আমরা this ব্যবহার করে এই সীমাবদ্ধতা কাটাতে পারি পদ্ধতি It’s আমাদের একটি অবজেক্টে একটি নির্দিষ্ট ভেরিয়েবল বরাদ্দ করতে দেয়, যা আমাদেরকে অবজেক্টে ভেরিয়েবলের মান এবং প্রাথমিক ভেরিয়েবলের মান উভয়ই সংরক্ষণ করতে দেয়।

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

এই অ্যাপ্লিকেশনটি তৈরি করতে আমরা যে কোডটি ব্যবহার করব তা এখানে:

শ্রেণি HonorRoll { স্ট্রিং ছাত্রের নাম; HonorRoll(String studentName) { this.studentName =studentName; } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আরগস) { HonorRoll alex =নতুন HonorRoll("Alex"); System.out.println("নতুন অনার রোল ইনডাক্টি:" + alex.studentName); }}

যখন আমরা আমাদের প্রোগ্রাম চালাই, তখন নিম্নলিখিতটি ফিরে আসে:

নতুন অনার রোল ইনডাক্টি:অ্যালেক্স

এই উদাহরণে, আমরা this ব্যবহার করি HonorRoll-এ ছাত্রের নামের ট্র্যাক রাখতে পদ্ধতি studentName এর মান নির্ধারণ করতে আমরা কোডের নিম্নলিখিত লাইনটি ব্যবহার করি কনস্ট্রাক্টর প্যারামিটার (যা Alex উপরের উদাহরণে) পরিবর্তনশীল this.studentName . আমরা এটি না করলে, নিম্নলিখিতগুলি ফেরত দেওয়া হবে:

নতুন অনার রোল প্রবর্তক:​​শূন্য

কারণ, আমাদের HonorRoll এর জন্য ছাত্রের নাম সংরক্ষণ করার পদ্ধতি, আমাদের this ব্যবহার করতে হবে জাভা কম্পাইলার থেকে যেকোনো অস্পষ্টতা দূর করতে। সুতরাং, যদি আমরা this শব্দটি মুছে ফেলি আমাদের কোড থেকে, আমরা একটি শূন্য মান পাই।

এটি একটি আর্গুমেন্ট হিসাবে পাস করা

this কীওয়ার্ড প্রায়শই একটি পদ্ধতিতে বা কনস্ট্রাক্টরের বর্তমান বস্তুকে অন্য পদ্ধতিতে পাস করতে ব্যবহৃত হয়।

ধরুন আমরা একটি অ্যাপ্লিকেশন তৈরি করছি যা ট্র্যাক করে কত ব্যাগ কফি বিন একটি স্থানীয় কফি শপে স্টক আছে। এই অ্যাপ্লিকেশানটি কফি শপের মালিককে স্টকে থাকা মোট ব্যাগের সাথে যোগ করার অনুমতি দেওয়া উচিত, যেগুলি আরও স্টক উপলব্ধ হলে ব্যবহার করা হবে৷ এই অ্যাপ্লিকেশনটি তৈরি করতে আমরা যে কোডটি ব্যবহার করতে পারি তা এখানে:

ক্লাস AddStock { int stockToAdd; int stockTotal; AddStock(int stockToAdd, int stockTotal) { this.stockToAdd =stockToAdd; this.stockTotal =stockTotal; System.out.println("বর্তমান স্টক:" + this.stockTotal); calculateNewStock(এটি); System.out.println("নতুন স্টক:" + this.stockTotal); } void calculateNewStock(AddStock s) { s.stockTotal +=s.stockToAdd; }}ক্লাস মেইন { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আর্গস) { AddStock newStockValue =নতুন AddStock(10, 9); }}

আমাদের কোড ফিরে আসে:

বর্তমান স্টক:9নতুন স্টক:19

আসুন কোডটি ভেঙে ফেলি। আমাদের কোডে, আমরা AddStock নামে একটি ক্লাস সংজ্ঞায়িত করেছি . এই ক্লাসে একটি পদ্ধতি রয়েছে যা দুটি মান নেয়—stockToAdd এবং stockTotal —এবং calculateNewStock() চালু করে কফি শপে কত ব্যাগ কফি স্টক আছে তা গণনা করার পদ্ধতি।

তারপর আমরা Main() ব্যবহার করি AddStock ক্লাসের একটি ইন্সট্যান্স আরম্ভ করতে এবং একসাথে দুটি মান যোগ করার জন্য ক্লাস:10 এবং 9। আমাদের প্রোগ্রামটি কার্যকর হওয়ার পরে, আমাদের কোড দুটি মান যোগ করে যা আমরা নির্দিষ্ট করেছি—যথাক্রমে যোগ করার জন্য স্টক এবং বর্তমান মোট স্টক-এবং দুটিই প্রিন্ট করে। বর্তমান স্টক এবং কনসোলে সংশোধিত স্টক স্তর।

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

উপসংহার

জাভা এই কীওয়ার্ডটি একটি মেথড বা কনস্ট্রাক্টরের ভিতরে বর্তমান অবজেক্টকে বোঝায়। জাভাতে, এই কীওয়ার্ডটির দুটি প্রধান ব্যবহার রয়েছে:পরিবর্তনশীল নামগুলিকে দ্ব্যর্থিত করতে এবং এটিকে একটি যুক্তি হিসাবে পাস করতে

এই টিউটোরিয়ালটিতে উদাহরণের সাথে আলোচনা করা হয়েছে, কিভাবে এই তিনটি প্রসঙ্গে জাভা এই কীওয়ার্ডটি ব্যবহার করতে হয়। এখন আপনি জাভা এই কীওয়ার্ডটি বিশেষজ্ঞের মতো ব্যবহার শুরু করার জন্য প্রয়োজনীয় জ্ঞানের সাথে সজ্জিত।


  1. জাভাতে কি সুইং থ্রেড-নিরাপদ?

  2. জাভাতে এটির একটি রেফারেন্স বরাদ্দ করা কি সম্ভব?

  3. জাভাতে নেস্টেড ইন্টারফেস

  4. জাভাতে ইন্টারফেস