এটি সরাসরি সমস্যার চেয়ে স্টাইলিস্টিক জিনিস। এটি সুপারিশ করে যে ক্লাসে যা চলছে তার মাধ্যমে আপনি সঠিকভাবে চিন্তা করেননি।
এর static
অর্থ সম্পর্কে চিন্তা করুন :
এই পরিবর্তনশীল শ্রেণি পর্যায়ে বিদ্যমান, এটি প্রতিটি উদাহরণের জন্য পৃথকভাবে বিদ্যমান নেই এবং ক্লাসগুলিতে এটির স্বাধীন অস্তিত্ব নেই যা আমার প্রসারিত করে ।
এর protected
অর্থ সম্পর্কে চিন্তা করুন :
এই পরিবর্তনশীলটি এই শ্রেণীর দ্বারা দেখা যায়, একই প্যাকেজের ক্লাসে এবং ক্লাসগুলি যা আমাকে প্রসারিত করে ।
দুটি অর্থ একে অপরের সাথে একচেটিয়া নয় তবে এটি খুব কাছের।
কেবলমাত্র আমি দেখতে পাচ্ছি যেখানে আপনি দুজনকে একসাথে ব্যবহার করতে পারেন তা হ'ল যদি আপনার কোনও বিমূর্ত শ্রেণি প্রসারিত করার জন্য ডিজাইন করা হয়েছিল এবং প্রসারিত শ্রেণিটি তখন মূলতে সংজ্ঞায়িত ধ্রুবক ব্যবহার করে আচরণটি পরিবর্তন করতে পারে। এই ধরণের ব্যবস্থাটি সম্ভবত খুব অগোছালো হয়ে যাবে যদিও এবং ক্লাসগুলির নকশায় দুর্বলতা নির্দেশ করে।
বেশিরভাগ ক্ষেত্রেই ধ্রুবকগুলি জনসাধারণ হিসাবে রাখাই ভাল হবে যেহেতু এটি কেবল সবকিছু পরিষ্কার করে তোলে এবং উপ-শ্রেণিবদ্ধ লোকদের আরও নমনীয়তা দেয়। বেশিরভাগ ক্ষেত্রে অন্য কিছু বাদ দিয়ে বেশিরভাগ ক্ষেত্রে রচনাটি উত্তরাধিকারের চেয়ে বেশি পছন্দনীয়, আবার বিমূর্ত শ্রেণিগুলি উত্তরাধিকারকে বাধ্য করে।
এটি কীভাবে জিনিসগুলিকে ভেঙে ফেলতে পারে তার একটি উদাহরণ দেখতে এবং ভেরিয়েবলের স্বতন্ত্র অস্তিত্ব না থাকার অর্থ আমি কী বোঝাতে চাই তা এই উদাহরণ কোডটি ব্যবহার করে দেখুন:
public class Program {
public static void main (String[] args) throws java.lang.Exception {
System.out.println(new Test2().getTest());
Test.test = "changed";
System.out.println(new Test2().getTest());
}
}
abstract class Test {
protected static String test = "test";
}
class Test2 extends Test {
public String getTest() {
return test;
}
}
আপনি ফলাফলগুলি দেখতে পাবেন:
test
changed
এটি এখানে নিজে চেষ্টা করুন: https://ideone.com/KM8u8O
বর্গ Test2
স্ট্যাটিক সদস্য অ্যাক্সেস করতে সক্ষম হয় test
থেকে Test
নাম যোগ্যতা ছাড়াই - কিন্তু এটা উত্তরাধিকারী না বা তার নিজের কপি পেতে। এটি স্মৃতিতে ঠিক একই জিনিসটির দিকে তাকিয়ে আছে।
final
। ক্লাসে ভাগ করা একটি পরিবর্তনীয় স্থির ক্ষেত্র অবশ্যই উদ্বেগের কারণ। স্ট্যাটিক ক্ষেত্র আপডেট করে একাধিক ক্লাসগুলি নির্ভরযোগ্য বা অনুসরণ করা সহজ নয়, বিশেষত যেহেতু কোনও সুরক্ষিত ক্ষেত্র বা পদ্ধতির উপস্থিতি থেকেই বোঝা যায় যে ক্লাসটি অন্যান্য প্যাকেজগুলির ক্লাস দ্বারা প্রসারিত হতে পারে, সম্ভবত ক্লাসগুলি এর নিয়ন্ত্রণাধীন নয় সুরক্ষিত ক্ষেত্র সমেত শ্রেণীর লেখক।