উপযুক্ত উদাহরণ (প্রোগ্রাম) দিয়ে ইনস্ট্যান্স এবং স্ট্যাটিক ভেরিয়েবলের মধ্যে পার্থক্য কী?


উত্তর 1:

সকলেই সুন্দর উদাহরণ ও ব্যাখ্যা দিয়েছেন। আমি একটি সাথে চালিয়ে যাব:

ইনস্ট্যান্স ভেরিয়েবল একটি শ্রেণীর প্রতিটি বস্তুর (উদাহরণ) সম্পত্তি।

স্ট্যাটিক ভেরিয়েবল ক্লাসের নিজস্ব সম্পত্তি এবং এটি শ্রেণীর কোনও নির্দিষ্ট বস্তুর (উদাহরণ) এর সাথে সম্পর্কিত নয়)

তুলনা এবং বিসদৃশ:

  1. স্ট্যাটিক ভেরিয়েবলগুলি ক্লাস লোডিংয়ের সময় সূচনা করা হয়। অবজেক্টগুলির মাধ্যমে দৃষ্টান্ত। স্ট্যাটিক ভেরিয়েবলটি শ্রেণীর নাম ব্যবহার করে অ্যাক্সেস করা যায়। উদাহরণস্বরূপ পরিবর্তনশীল অবজেক্টটি তৈরি করতে হবে এবং কেবলমাত্র বস্তুর মাধ্যমে অ্যাক্সেস করা যেতে পারে। উদাহরণ

বাক্য গঠন ভাষা থেকে আলাদা হতে পারে

ক্লাস_এ :: স্ট্যাটিক ভ্যারিয়েবল // অ্যাক্সেস করা যায়

ObjClass_A = নতুন শ্রেণি_আ

ObjClass_A.instanceVariable

3. স্ট্যাটিক ভেরিয়েবল একবার শুরু করা যেতে পারে। সুতরাং এটি একক প্যাটার্নে মূল ধারণা।

৪. স্ট্যাটিক ভেরিয়েবল বিমূর্ত শ্রেণীর জন্য ইন্টারফেসের অংশ হতে পারে না, কারণ তাদের জন্য স্মৃতি বরাদ্দ নেই।



উত্তর 2:

ইনস্ট্যান্স ভেরিয়েবল একটি শ্রেণীর প্রতিটি বস্তুর (উদাহরণ) সম্পত্তি।

স্ট্যাটিক ভেরিয়েবল ক্লাসের নিজস্ব সম্পত্তি এবং এটি শ্রেণীর কোনও নির্দিষ্ট বস্তুর (উদাহরণ) এর সাথে সম্পর্কিত নয়)

-

উদাহরণ:

বর্গ কর্মচারী {
বেসরকারী স্থিতিশীল কর্মচারী অ্যাকাউন্ট = 0;
ব্যক্তিগত স্ট্রিং এম্পনাম;
প্রাইভেট আইটি এমআইপি;

// কন্সট্রাকটর
পাবলিক কর্মচারী (স্ট্রিং ই-নেম, ইন্ট ইড) {
this.empName = eName;
this.empId = eId;
employeeCount ++,;
}

পাবলিক কর্মচারী অ্যাড এমপ্লয়ই (স্ট্রিং ই-নেম, ইন্ট ইআইডি) {
নতুন কর্মচারী (ই-নেম, ইআইডি) ফিরিয়ে দিন;
}

সর্বজনীন শূন্যতা মুছে ফেলুন
employeeCount--;
}

পাবলিক ইন্ট getEmployeeCount () {
রিটার্ন কর্মচারী হিসাব;
}
}

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

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

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



উত্তর 3:

ইনস্ট্যান্স ভেরিয়েবলটি ক্লাসে সংজ্ঞায়িত একটি সদস্য পরিবর্তনশীল এবং প্রতিটি উদাহরণ (সেই শ্রেণীর অবজেক্ট) এর পৃথক অনুলিপি থাকে। যতক্ষণ অবজেক্টটি বিদ্যমান থাকে ততক্ষণ এ স্মৃতিতে থেকে যায়।

ক্লাস টেস্ট
{
স্ট্রিং এবিসি;
}

উপরের অ্যাক্সেসের জন্য আপনাকে ক্লাস টেস্টটি ইনস্ট্যান্ট করতে হবে

পরীক্ষা t = নতুন পরীক্ষা ();
t.abc = "হ্যালো ওয়ার্ল্ড"।
পরীক্ষা t1 = নতুন পরীক্ষা ();
t1.abc = "স্বাগতম"
পরীক্ষা t2 = নতুন পরীক্ষা ();
t2.abc = "টেস্ট";

এখন আপনি যদি উপরের উদাহরণটি দেখতে পান তবে আমাদের কাছে ক্লাস টেস্টের 3 টি অবজেক্ট, টি, টি 1 এবং টি 2 রয়েছে যার প্রত্যেকটির নিজস্ব ভেরিয়েবল এবিসির নিজস্ব অনুলিপি রয়েছে এবং এটি বিভিন্ন মেমরির স্থানে সঞ্চিত রয়েছে।

অন্যদিকে স্থিতিশীল ভেরিয়েবল কোনও শ্রেণীর সাথে সম্পর্কিত, কোনও বস্তুর সাথে নয়। তাদের স্মৃতিতে একটি নির্দিষ্ট অবস্থান রয়েছে এবং এটি শ্রেণীর নাম ব্যবহার করে উল্লেখ করা হয়।

ক্লাস টেস্ট
{
স্ট্রিং এবিসি;
স্ট্যাটিক ইনট গণনা = 0;
}

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

Test.count = 1;

আপনি চাইলে সাধারণত স্ট্যাটিক ভেরিয়েবল ব্যবহার করা হয়



উত্তর 4:

আপনি আরও বিশদ এবং নমুনা কোডের জন্য এই ধরণের প্রশ্নটি গুগল করতে পারেন

ইনস্ট্যান্স ভেরিয়েবল - এমন একটি ভেরিয়েবল যা শ্রেণীর অভ্যন্তরে ঘোষণা করা হয় তবে পদ্ধতির বাইরে থাকে তাকে ইনস্ট্রেন্স ভেরিয়েবল বলে। এটি স্থির হিসাবে ঘোষণা করা হয় না।

স্ট্যাটিক ভেরিয়েবল- একটি পরিবর্তনশীল যা স্থির হিসাবে ঘোষিত হয় তাকে স্ট্যাটিক ভেরিয়েবল বলে। এটি স্থানীয় হতে পারে না, এটি কোনও বিশদ অবজেক্টের জন্য নয়, পুরো শ্রেণীর জন্য

ক্লাস পরীক্ষা {
int iv = 10; // উদাহরণ পরিবর্তনশীল
স্ট্যাটিক ইন্ট এসভি = 100; // স্ট্যাটিক ভেরিয়েবল
অকার্যকর পদ্ধতি () {
int lv = 50; // স্থানীয় পরিবর্তনশীল
}}

আরও তথ্যের জন্য চেক করুন - জাভা চলক প্রকার