"আমার প্রিয় ছাত্রকে হ্যালো। এখন আমি আপনাকে ভেরিয়েবলের দৃশ্যমানতা সম্পর্কে বলতে যাচ্ছি।"

"হুহ? ভেরিয়েবল কি অদৃশ্য হতে পারে?"

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

"উদাহরণস্বরূপ, আপনি একটি ভেরিয়েবল ঘোষণা করার আগে ব্যবহার করতে পারবেন না।"

"এটা বোধগম্য."

"এখানে উদাহরণ তুলে ধরা হলো:"


public class Variables

{
   private static String TEXT = "The end.";
  ┗━━━━━━━━━━━━━━┛
   public static void main (String[] args)
                          ┗━━━━━━━┛
  {
     System.out.println("Hi");
     String s = "Hi!";
   ┏┗━━━━┛
    System.out.println(s);
    if (args != NULL)
    {
       String s2 = s;
      ┗━━━━┛
   
      System.out.println(s2);
     
    }
    Variables variables = new Variables();
    System.out.println(variables.instanceVariable);
    System.out.println(TEXT);
   
  }
 
   public String instanceVariable;
  ┗━━━━━━━━━━━━━━━┛
   public Variables()
   {
      instanceVariable = "Instance variable test.";
   }
}

1. একটি পদ্ধতিতে ঘোষিত একটি পরিবর্তনশীল তার ঘোষণার শুরু থেকে পদ্ধতির শেষ পর্যন্ত বিদ্যমান (দৃশ্যমান)।

2. কোড ব্লকে ঘোষিত একটি ভেরিয়েবল কোড ব্লকের শেষ না হওয়া পর্যন্ত বিদ্যমান থাকে।

3. একটি পদ্ধতির প্যারামিটারগুলি পদ্ধতির মধ্যে সর্বত্র বিদ্যমান।

4. একটি বস্তুর মধ্যে ভেরিয়েবলগুলি সেই বস্তুর সমগ্র জীবদ্দশায় বিদ্যমান থাকে যা সেগুলিকে ধারণ করে। তাদের দৃশ্যমানতা বিশেষ অ্যাক্সেস মডিফায়ার দ্বারা সংজ্ঞায়িত করা হয়: সর্বজনীন এবং ব্যক্তিগত

5. স্থির (শ্রেণি) ভেরিয়েবলগুলি প্রোগ্রামটি চলার সময় উপস্থিত থাকে। তাদের দৃশ্যমানতা অ্যাক্সেস মডিফায়ার দ্বারা সংজ্ঞায়িত করা হয়।

"আমি ছবি পছন্দ করি। তারা সবকিছু পরিষ্কার করতে সাহায্য করে।"

"ভালো ছেলে, আমিগো। আমি সবসময় জানতাম যে তুমি একজন স্মার্ট লোক।"

"আমি আপনাকে ' অ্যাক্সেস মডিফায়ার ' সম্পর্কেও বলতে যাচ্ছি । ভয় পাবেন না। এগুলো নিয়ে জটিল কিছু নেই। এখানে আপনি পাবলিক এবং প্রাইভেট শব্দগুলো দেখতে পাবেন ।"

"আমি ভয় পাচ্ছি না। শুধু আমার চোখ টলমল করছে।"

"আমি আপনাকে বিশ্বাস করি। আপনি পরিচালনা করতে পারেন কিভাবে একটি ক্লাসের পদ্ধতি এবং ভেরিয়েবলগুলি অন্য শ্রেণীর দ্বারা অ্যাক্সেস করা হয় (বা তাদের কাছে দৃশ্যমান)। আপনি প্রতিটি পদ্ধতি বা ভেরিয়েবলের জন্য শুধুমাত্র একটি অ্যাক্সেস মডিফায়ার বরাদ্দ করতে পারেন।

1. পাবলিক অ্যাক্সেস মডিফায়ার।

আপনি প্রোগ্রামের যেকোনো স্থান থেকে পাবলিক মডিফায়ার দিয়ে চিহ্নিত একটি পরিবর্তনশীল, পদ্ধতি বা শ্রেণী ব্যবহার করতে পারেন। এটি অ্যাক্সেসের সর্বোচ্চ স্তর - এখানে কোন সীমাবদ্ধতা নেই।

2. ব্যক্তিগত অ্যাক্সেস মডিফায়ার।

আপনি একটি ভেরিয়েবল বা প্রাইভেট মডিফায়ার দিয়ে চিহ্নিত একটি পদ্ধতি ব্যবহার করতে পারেন যেটি ক্লাসে এটি ঘোষণা করা হয়েছে। অন্য সমস্ত ক্লাসের জন্য, চিহ্নিত পদ্ধতি বা পরিবর্তনশীলটি অদৃশ্য হবে, ঠিক যেন এটি বিদ্যমান না থাকে। এটি বন্ধের সর্বোচ্চ স্তর - শুধুমাত্র তার নিজস্ব শ্রেণীর মধ্যে অ্যাক্সেস।

3. কোন মডিফায়ার নেই।

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

এখানে একটি সারণী যা আমরা যা আলোচনা করেছি তার সংক্ষিপ্ত বিবরণ:"

সংশোধক থেকে অ্যাক্সেস…
নিজস্ব শ্রেণী নিজস্ব প্যাকেজ যেকোন ক্লাস
ব্যক্তিগত হ্যাঁ না না
কোন পরিবর্তনকারী নেই ( প্যাকেজ-ব্যক্তিগত ) হ্যাঁ হ্যাঁ না
পাবলিক হ্যাঁ হ্যাঁ হ্যাঁ