محدوده متغیر

متدها در جاوا، دارای محدوده هستند. محدوده یا scope یک متغیر، به شما می‌گوید که در کجای برنامه می‌توان از متغیر استفاده کرد و یا متغیر قابل دسترسی است. به عنوان مثال، متغیری که در داخل یک متد تعریف می‌شود، فقط در داخل بدنه متد قابل دسترسی است. می‌توان دو متغیر با نام یکسان در دو متد مختلف تعریف کرد. برنامه زیر این ادعا را اثبات می‌کند :

   1: package myfirstprogram;
   2: 
   3: import java.text.MessageFormat;
   4: 
   5: public class MyFirstProgram 
   6: {  
   7:     static void DemonstrateScope()
   8:     {
   9:         int number = 5;
  10: 
  11:         System.out.println(MessageFormat.format("number inside method DemonstrateScope() = {0}", number));
  12:     }
  13:     
  14:     public static void main(String[] args) 
  15:     {
  16:         int number = 10;
  17: 
  18:         DemonstrateScope();
  19: 
  20:         System.out.println(MessageFormat.format("number inside the Main method() = {0}", number));
  21:     }   
  22: }
number inside method DemonstrateScope() = 5
number inside the Main method() = 10

مشاهده می‌کنید که، حتی اگر ما دو متغیر با نام یکسان تعریف کنیم که، دارای محدوده‌های متفاوتی باشند، می‌توان به هر کدام از آنها مقادیر مختلفی اختصاص داد. متغیر تعریف شده در داخل متد Main() در خط 9 هیچ ارتباطی به متغیر داخل متد DemonstrateScope() در خط 16 ندارد. وقتی به مبحث کلاسها رسیدیم در این باره بیشتر توضیح خواهیم داد.