কোনও ভেরিয়েবলকে ঘোষিত ঘোষণার চেয়ে private static varName;আলাদা বলে ঘোষণা করা private varName;কি?
হ্যাঁ, উভয়ই আলাদা। এবং প্রথমটিকে বলা হয় class variableকারণ এটির জন্য এটি একক মান রাখে classঅন্যদিকে বলা হয় instance variableকারণ এটি আলাদা আলাদা মান রাখতে পারে instances(Objects)। প্রথমটি শুধুমাত্র একবার jvm এ তৈরি করা হয় এবং অন্যটি একবারে একবারে তৈরি করা হয় অর্থাত্ আপনার যদি 10 টি উদাহরণ থাকে তবে আপনার private varName;jvm তে 10 টি আলাদা থাকবে ।
ভেরিয়েবল হিসাবে ঘোষণা করা কি staticএটিকে অন্যান্য বিশেষ বৈশিষ্ট্য দেয়?
হ্যাঁ, স্ট্যাটিক ভেরিয়েবলগুলি সাধারণ উদাহরণের ভেরিয়েবলের চেয়ে কিছু আলাদা বৈশিষ্ট্য পায়। আমি ইতিমধ্যে কয়েকটি উল্লেখ করেছি এবং আসুন এখানে class variablesকিছুটি দেখুন: (উদাহরণস্বরূপ ভেরিয়েবলগুলি যা স্থির হিসাবে ঘোষিত হয়) শ্রেণীর নাম ব্যবহার করে সরাসরি অ্যাক্সেস করা যায় ClassName.varName। এবং এই শ্রেণীর যে কোনও অবজেক্ট তার মানটি অ্যাক্সেস করতে এবং সংশোধন করতে পারে উদাহরণের ভেরিয়েবলের বিপরীতে কেবলমাত্র তার সম্পর্কিত বস্তুগুলি অ্যাক্সেস করতে পারে। ক্লাস ভেরিয়েবল স্থিতিশীল পদ্ধতিতে ব্যবহার করা যেতে পারে।
private static variableজাভাতে কোনটির ব্যবহার কী ?
যৌক্তিকভাবে, প্রথমটি আপনাকে আরও নিয়ন্ত্রণ দেয় তার চেয়ে private static variableআলাদা public static variableনয়। আইএমও, আপনি আক্ষরিক প্রতিস্থাপন করতে পারেন public static variableদ্বারা private static variableসাহায্যে public staticগেটার এবং সেটার পদ্ধতি।
এর একটি বহুল ব্যবহৃত ক্ষেত্র private static variableহ'ল সাধারণ Singletonপ্যাটার্ন প্রয়োগ করা যেখানে আপনার কাছে পুরো বিশ্বে এই শ্রেণীর একমাত্র উদাহরণ থাকবে। এখানে staticএকক দৃষ্টিকোণ বাইরের বিশ্বের দ্বারা অ্যাক্সেসযোগ্য হয়ে উঠতে এখানে সনাক্তকারী গুরুত্বপূর্ণ ভূমিকা পালন করে (অবশ্যই পাবলিক স্ট্যাটিক গেটর পদ্ধতিটিও মুখ্য ভূমিকা পালন করে)।
public class Singleton {
private static Singleton singletonInstance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return Singleton.singletonInstance;
}
}