কম্পিউটার

জাভা স্ট্যাটিক

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

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

সেখানেই জাভা স্ট্যাটিক কীওয়ার্ড আসে। জাভা স্ট্যাটিক কীওয়ার্ডটি ক্লাসের সদস্যদের সংজ্ঞায়িত করতে ব্যবহৃত হয় যা আপনি ক্লাসের একটি উদাহরণ তৈরি না করেই অ্যাক্সেস করতে পারেন।

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

জাভা ক্লাস

জাভাতে, ক্লাসগুলি একটি বস্তুর ব্লুপ্রিন্ট। উদাহরণস্বরূপ, OrderCoffee নামক একটি ক্লাসে একটি কফির অর্ডার দেওয়ার সাথে সম্পর্কিত সমস্ত ফাংশন অন্তর্ভুক্ত থাকতে পারে, যেমন একটি অর্ডার দেওয়া, একটি বিদ্যমান অর্ডার পরিবর্তন করা এবং একটি অর্ডারে নতুন আইটেম যোগ করা।

তারপরে আমরা এমন বস্তু তৈরি করতে পারি যা সেই শ্রেণীর উদাহরণ। উদাহরণস্বরূপ, CoffeeOrder12 নামক একটি বস্তু একটি পৃথক কফি অর্ডারের জন্য ডেটা সঞ্চয় করতে CoffeeOrder ক্লাসের ব্লুপ্রিন্ট ব্যবহার করতে পারে। CoffeeOrder12 অবজেক্টের কফিঅর্ডার ক্লাসের মধ্যে ঘোষিত সমস্ত ফাংশন এবং পদ্ধতিতে অ্যাক্সেস থাকবে। এই ধারণাগুলির একটি চাক্ষুষ উপস্থাপনার জন্য চিত্র 1 দেখুন।

জাভা স্ট্যাটিক

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

জাভা স্ট্যাটিক পদ্ধতি

স্ট্যাটিক পদ্ধতি, শ্রেণী পদ্ধতি নামেও পরিচিত, এমন পদ্ধতি যা একটি শ্রেণীর অন্তর্গত এবং এর উদাহরণ নয়। যেহেতু স্ট্যাটিক পদ্ধতিগুলি একটি ক্লাসের অন্তর্গত, আপনি শুধুমাত্র ক্লাস থেকেই পদ্ধতিটি চালু করতে পারেন, এবং ক্লাসের একটি বস্তু থেকে নয়৷

এখানে একটি স্ট্যাটিক পদ্ধতি চালু করার জন্য সিনট্যাক্স রয়েছে:

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

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

Class.methodName();

এটি কীভাবে কাজ করে তা দেখার জন্য আসুন একটি উদাহরণ দেখি।

ধরুন আমরা একটি প্রোগ্রাম তৈরি করছি যা একটি কফি স্টোরের অর্ডার পরিচালনা করে। আমরা CoffeeOrder নামে একটি ক্লাস তৈরি করতে চাই যা কফি অর্ডার করার জন্য সমস্ত ফাংশন সংরক্ষণ করে৷

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

ক্লাস কফিঅর্ডার { int createOrder() {// এখানে কোড int orderNumber =92; ফেরত আদেশ নম্বর; } static void printOrder(int order) { System.out.println("অর্ডার #" + অর্ডার + " অর্ডার দেওয়া হয়েছে।"); }}ক্লাস মেইন { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আর্গস) { কফিঅর্ডার অর্ডার92 =নতুন কফিঅর্ডার(); int সংখ্যা =order92.createOrder(); System.out.println("অর্ডার নম্বর:" + সংখ্যা); CoffeeOrder.printOrder(সংখ্যা); }}

আমাদের কোড রিটার্ন করে:

অর্ডার নম্বর:92অর্ডার #92 রাখা হয়েছে।

আমাদের কোড ধাপে ধাপে ভাঙ্গুন। প্রথমে আমরা CoffeeOrder নামে একটি ক্লাস ঘোষণা করি। CoffeeOrder এ দুটি পদ্ধতি রয়েছে:createOrder() এবং printOrder() .

createOrder() একটি নিয়মিত পদ্ধতি যা একটি অর্ডার তৈরি করে এবং একটি অর্ডার নম্বর প্রদান করে। printOrder() এটি একটি স্ট্যাটিক পদ্ধতি যা কনসোলে একটি বার্তা প্রিন্ট করে বারিস্তাকে জানিয়ে দেয় যে একটি নতুন অর্ডার দেওয়া হয়েছে৷

আমাদের প্রধান প্রোগ্রামে, আমরা অর্ডার 92 নামে কফিঅর্ডারের একটি বস্তু তৈরি করি। এই বস্তুটি অর্ডার #92 এর জন্য ডেটা সঞ্চয় করে। তারপর আমরা createOrder() ব্যবহার করি একটি অর্ডার নম্বর পাওয়ার পদ্ধতি, এবং আমরা সেই অর্ডার নম্বরটি প্রিন্ট আউট করি, অর্ডার নম্বরের আগে:, কনসোলে।

যখন আমরা createOrder() চালু করি পদ্ধতি, আমরা order92.createOrder() ব্যবহার করি . এর কারণ createOrder() এটি একটি স্ট্যাটিক পদ্ধতি নয়, তাই আমরা আমাদের অবজেক্ট ম্যানিপুলেট করার সময় এটি অ্যাক্সেস করতে পারি।

আমাদের প্রধান কোডের শেষে, আমরা CoffeeOrder.printOrder() ব্যবহার করি অর্ডার #[অর্ডার নম্বর] অর্ডার দেওয়া হয়েছে জানিয়ে একটি বার্তা প্রিন্ট করতে। কনসোলে এই বার্তায়, order number একটি নির্দিষ্ট আদেশের সাথে যুক্ত সংখ্যার সমান। কারণ printOrder() একটি স্ট্যাটিক পদ্ধতি, এটি অ্যাক্সেস করতে আমাদের কফিঅর্ডার (আমাদের ক্লাস) ব্যবহার করতে হবে৷

যদি আমরা order92.printOrder() ব্যবহার করার চেষ্টা করি (যা আমাদের ক্লাসের একটি দৃষ্টান্ত আহ্বান করে), যেমন আমরা createOrder() ব্যবহার করার সময় করেছিলাম পদ্ধতি, আমাদের একটি সতর্কতা দিতে পারে।

জাভা স্ট্যাটিক ভেরিয়েবল

জাভাতে স্ট্যাটিক কীওয়ার্ডটি স্ট্যাটিক ইনস্ট্যান্স ভেরিয়েবল তৈরি করতেও ব্যবহার করা যেতে পারে। স্ট্যাটিক ভেরিয়েবল একটি ক্লাসের অন্তর্গত এবং একটি প্রোগ্রামের সঞ্চালনের শুরুতে শুধুমাত্র একবার শুরু করা হয়।

স্ট্যাটিক ভেরিয়েবল কোন বস্তুর অন্তর্গত নয়। এর মানে হল যে সেগুলি অ্যাক্সেস করার জন্য আপনাকে প্রাসঙ্গিক ক্লাস উল্লেখ করতে হবে। এখানে জাভাতে একটি স্ট্যাটিক ভেরিয়েবল ঘোষণা করার জন্য সিনট্যাক্স রয়েছে:

স্ট্যাটিক স্ট্রিং COFFEE_NAME ="এসপ্রেসো";

এই উদাহরণে, আমরা COFFEE_NAME নামক একটি স্ট্যাটিক ভেরিয়েবল ঘোষণা করেছি, যেখানে আমরা স্ট্রিং মান এসপ্রেসো নির্ধারণ করেছি।

চলুন একটি জাভা স্ট্যাটিক ভেরিয়েবল ব্যবহারে দেখানোর জন্য একটি উদাহরণের মাধ্যমে চলুন।

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

আমরা আমাদের কফি প্রক্রিয়াকরণ প্রোগ্রাম তৈরি করতে এই কোডটি ব্যবহার করতে পারি:

<প্রি>ক্লাস কফিঅর্ডার { int baristasOnDuty =2; স্ট্যাটিক স্ট্রিং নাম ="হানা জনসন"; পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আরগস) { কফিঅর্ডার অর্ডার111 =নতুন কফিঅর্ডার(); System.out.println("বারিস্তাস অন ডিউটি:" + baristasOnDuty); System.out.println("অ্যাসাইন করা বারিস্তা:" + order111.name); }}

আমাদের কোড রিটার্ন করে:

ডিউটিতে বারিস্তা:2 অ্যাসাইনড বারিস্তা:হান্না জনসন

আমাদের কোডে, আমরা নিম্নলিখিত দুটি ভেরিয়েবল ঘোষণা করি:

  • বারিস্তাসঅনডিউটি। এটি একটি স্ট্যান্ডার্ড ভেরিয়েবল, যার মানে হল এটি আমাদের ক্লাস জুড়ে অ্যাক্সেস করা যেতে পারে।
  • নাম। এটি একটি স্ট্যাটিক ভেরিয়েবল, যার মানে আমাদের এটির মান পুনরুদ্ধার করার জন্য এটির সাথে যুক্ত বস্তুটিকে উল্লেখ করতে হবে৷

আমাদের প্রধান প্রোগ্রামে, আমরা CoffeeOrder ক্লাসের একটি উদাহরণ তৈরি করি এবং একে অর্ডার 111 বলি। আমরা তারপরে Baristas on duty বার্তাটি প্রিন্ট করি:baristasOnDuty ভেরিয়েবলের বিষয়বস্তু অনুসরণ করে। যেহেতু এটি একটি আদর্শ পরিবর্তনশীল, আমাদের এটির শ্রেণির নাম উল্লেখ করার প্রয়োজন নেই।

আমাদের কোডের পরবর্তী লাইনে, আমরা বার্তাটি প্রিন্ট করি Assigned barista:কনসোলে, যার কাছে অর্ডারটি বরাদ্দ করা হয়েছে তার নাম অনুসরণ করে। যাইহোক, বারিস্তার নাম একটি স্ট্যাটিক পরিবর্তনশীল হিসাবে সংরক্ষণ করা হয়।

এর মানে হল, বারিস্তার নাম পুনরুদ্ধার করার জন্য, আমাদের সেই বস্তুর নাম উল্লেখ করতে হবে যার সাথে সেই ভেরিয়েবলটি যুক্ত। এই ক্ষেত্রে, আমরা barista এর নাম পুনরুদ্ধার করতে order111.name ব্যবহার করি। এর কারণ হল ভেরিয়েবলের নামটি স্থির এবং তাই শুধুমাত্র অর্ডার111 অবজেক্টের উল্লেখ করার সময় অ্যাক্সেস করা যেতে পারে।

জাভা স্ট্যাটিক ব্লক

জাভা স্ট্যাটিক কীওয়ার্ডটি স্ট্যাটিক ব্লক তৈরি করতেও ব্যবহার করা যেতে পারে। যদি একটি ক্লাসের বিভিন্ন স্ট্যাটিক ভেরিয়েবল থাকে যা পৃথকভাবে শুরু করা প্রয়োজন, তাহলে আপনার একটি স্ট্যাটিক ব্লক ব্যবহার করা উচিত।

স্ট্যাটিক ব্লকগুলি একবার কার্যকর করা হয় - যখন ক্লাসটি কম্পিউটারের মেমরিতে প্রথম লোড করা হয়। এখানে জাভাতে কোডের একটি স্ট্যাটিক ব্লকের সিনট্যাক্স রয়েছে:

স্ট্যাটিক {// কোড এখানে

একটি স্ট্যাটিক ব্লক কিভাবে কাজ করে তা প্রদর্শনের জন্য একটি উদাহরণ দিয়ে চলুন। ধরুন আমাদের A new order is incoming … বার্তাটি করতে বলা হয়েছে প্রোগ্রামটি একটি বারিস্তাকে অর্ডার দেওয়ার আগে কনসোলে প্রিন্ট করুন যাতে বারিস্তারা প্রস্তুত করতে জানে। আমরা একটি স্ট্যাটিক ক্লাস তৈরি করে তা করতে পারি। প্রথমবার প্রোগ্রামটি চালানো হলে স্ট্যাটিক ক্লাস চলবে।

এখানে একটি স্ট্যাটিক ক্লাসের একটি উদাহরণ রয়েছে যা পূর্বোক্ত বার্তাটি প্রিন্ট করে, তারপরে একটি বারিস্তাকে একটি আদেশ প্রদান করে:

<প্রি>ক্লাস কফিঅর্ডার { int baristasOnDuty =2; স্ট্যাটিক স্ট্রিং নাম ="হানা জনসন"; স্ট্যাটিক { System.out.println("একটি নতুন অর্ডার আসছে ..."); } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং[] আরগস) { কফিঅর্ডার অর্ডার111 =নতুন কফিঅর্ডার(); System.out.println("বারিস্তাস অন ডিউটি:" + baristasOnDuty); System.out.println("অ্যাসাইন করা বারিস্তা:" + order111.name); }}

আমাদের কোড রিটার্ন করে:

একটি নতুন অর্ডার আসছে … ডিউটিতে বারিস্তাস:2 অ্যাসাইনড বারিস্তা:হান্না জনসন

আমাদের কোডে, আমরা প্রথমে baristasOnDuty এবং নাম ভেরিয়েবল শুরু করেছি। তারপর প্রোগ্রামটি বার্তাটি প্রিন্ট করেছে একটি নতুন অর্ডার আসছে … কনসোলে। এই বার্তাটি আমাদের স্ট্যাটিক ব্লকের কোডের মধ্যে সংরক্ষিত ছিল। প্রোগ্রামটি স্ট্যাটিক ব্লকের বিষয়বস্তু কার্যকর করার পরে, এটি আমাদের প্রধান প্রোগ্রামটি চালায়, যা আমাদের শেষ উদাহরণ থেকে মূল প্রোগ্রামের মতো একই আউটপুট প্রদান করে।

উপসংহার

জাভা স্ট্যাটিক কীওয়ার্ডের বেশ কিছু ব্যবহার রয়েছে। স্ট্যাটিক পদ্ধতি, স্ট্যাটিক ভেরিয়েবল এবং কোডের স্ট্যাটিক ব্লক তৈরি করতে আপনি স্ট্যাটিক কীওয়ার্ড ব্যবহার করতে পারেন।

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


  1. জাভাতে ক্লাস/স্ট্যাটিক পদ্ধতিগুলি কী কী?

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

  3. জাভাতে বিমূর্ত ক্লাস

  4. জাভাতে ফাইনাল ক্লাস