জাভা সি প্রোগ্রামিং পাইথন প্রোগ্রামিং পিএইচপি এসকিউএল জেকুয়েরি এইচটিএমএল সিএসএস
লগইন
 

জাভা ভ্যারিয়েবল (Java Variable in Bangla)



জাভা টিউটোরিয়াল পর্ব -৫/১০০

এই টিউটোরিয়ালে  আপনি জাভা  প্রোগ্রামিং ভ্যারিয়েবল এবং ভ্যারিয়েবলের নামকরন পদ্ধতি সম্মন্ধে জানবেন।

ভ্যারিয়েবল হল একটি নাম যা পরিবর্তিত হতে পারে এমন একটি মানের(value) সাথে যুক্ত। 

উদাহরণস্বরূপঃ  ধরুন, আমি লিখলাম int i = 10; 

এখানে ভ্যারিয়েবলের নাম হল i যা মান 10 এর সাথে যুক্ত,  int একটি ডেটা টাইপ যা দ্বারা নির্দেশ করে যে, এই ভ্যারিয়েবলটি শুধুমাত্র পূর্ণসংখ্যার মানগুলি ধরে রাখতে পারে। আমরা পরবর্তী টিউটোরিয়ালে ডেটা টাইপ সম্বন্ধে বিশদ আলোচনা করবো। এই টিউটোরিয়ালে, আমরা ভ্যারিয়েবল সম্পর্কে আলোচনা করবো।


জাভাতে কিভাবে ভ্যারিয়েবল ঘোষণা করবেন(How to Declare a variable in Java)

ভেরিয়েবল ঘোষণা করতে নিম্নের বাক্য গঠনটি(syntax) অনুসরণ করুন:

 data_type variable_name = value; 

এখানে মান(value) ঐচ্ছিক, কারণ জাভাতে আপনি প্রথমে মান ছাড়াই ভ্যারিয়েবল ঘোষণা করতে পারেন এবং পরবর্তীতে প্রয়োজন অনুসারে এটির জন্য মান নির্ধারণ করতে পারেন।

উদাহরণস্বরূপঃ নিম্নে num একটি ভ্যারিয়েবল এবং int একটি ডেটা টাইপ। আমরা পরবর্তী টিউটোরিয়ালে ডেটা টাইপ নিয়ে আলোচনা করব, তাই এটি সম্পর্কে খুব বেশি দুশ্চিন্তা করার দরকার নাই, কেবল এইটুকু বুঝলেই হবে যে int ডেটা টাইপ num ভ্যারিয়েবলকে শুধুমাত্র পূর্ণসংখ্যার মান ধরে রাখার অনুমতি দিচ্ছে। আপনি চাইলে এই লিংকে  ডেটা টাইপ পড়তে পারেন তবে পরবর্তী অধ্যায়ে যাওয়ার আগে আমরা আপনাকে এই টিউটোরিয়ালটি পড়ে শেষ করার পরামর্শ দিচ্ছি।

 int num; 

একইভাবে আমরা ভ্যারিয়েবল ঘোষণার সময়ও মান(value) নির্ধারণ করতে পারিঃ

 char ch = 'A';

int number = 100; 

অথবা আমরা নিম্নের মতোও করতে পারি:

 char ch;

int number;

...

ch = 'A';

number  = 100; 


জাভাতে ভ্যারিয়েবল নামকরণ নীতিমালা(Variables naming convention in java)

  • ভেরিয়েবলের নামকরণে সাদা স্পেস (white spaces) থাকতে পারবে না, উদাহরণস্বরূপ: int num ber = 100;  এটি অবৈধ । কারণ ভেরিয়েবলের নামটিতে সাদা স্পেস রয়েছে।
  • Variable নামটি বিশেষ অক্ষর যেমন $ এবং _ দিয়ে শুরু হতে পারে । 
  • জাভা কোডিং স্টান্ডার্ড  অনুসারে variable এর  নামটি ছোট হাতের অক্ষর দিয়ে শুরু করা উচিত, উদাহরণস্বরূপ int number; 

ভেরিয়েবল এর নাম দীর্ঘ হলে একাধিক শব্দের জন্য নিম্নের ন্যায় ক্যামেল কেস ব্যবহার করতে পারেন। 

যেমন-  int smallNumber; int bigNumber; ( দ্বিতীয়  শব্দটি বড় হাতের অক্ষর দিয়ে শুরু করুন)।

  • জাভাতে ভ্যারিয়েবলের নামসমূহ কেস সেনসিটিভ(case sensitive)। 

জাভাতে ভেরিয়েবলের প্রকার(Types of Variables in Java)

জাভাতে তিন ধরণের ভেরিয়েবল রয়েছেঃ 

  • লোকাল ভ্যারিয়েবল(Local variable)
  • স্ট্যাটিক বা ক্লাস ভ্যারিয়েবল (Static or class variable)
  • ইনস্ট্যান্স ভ্যারিয়েবল (Instance variable)


Static (or class) Variable

For example, If I create three objects of a class and access this static variable, it would be common for all, the changes made to the variable using one of the object would reflect when you access it through other objects.

স্ট্যাটিক ভেরিয়েবল ক্লাস ভেরিয়েবল হিসাবেও বেশ পরিচিত কারণ Static ভেরিয়েবল class এর সাথে সম্পর্কিত এবং class এর সমস্ত instances এ বিদ্যমান থাকে তথা এটি সমস্ত instances এর জন্য কমন(common)।

উদাহরণস্বরূপ, আমি যদি একটি class এর তিনটি object তৈরি করি এবং এর static variable কে অ্যাক্সেস করি তবে এটি সবার জন্যই সাধারণ(common) হবে। এই অবজেক্ট তিনটির যেকোন একটি ব্যবহার করে ভেরিয়েবলের পরিবর্তন করলে অন্য অবজেক্টক থেকে এই ভেরিয়েবলকে এক্সেস করার সময়ও দেখবেন একই প্রতিফলন ঘটছে।



স্ট্যাটিক ভেরিয়েবল এর উদাহরণ ( Example of static variable )

public class StaticVarExample {
   public static String myClassVar="class or static variable";
	
   public static void main(String args[]){
      StaticVarExample obj = new StaticVarExample();
      StaticVarExample obj2 = new StaticVarExample();
      StaticVarExample obj3 = new StaticVarExample();
      
      //All three will display "class or static variable"
      System.out.println(obj.myClassVar);
      System.out.println(obj2.myClassVar);
      System.out.println(obj3.myClassVar);

      //changing the value of static variable using obj2
      obj2.myClassVar = "Changed Text";

      //All three will display "Changed Text"
      System.out.println(obj.myClassVar);
      System.out.println(obj2.myClassVar);
      System.out.println(obj3.myClassVar);
   }
}


Output:

class or static variable

class or static variable

class or static variable

Changed Text

Changed Text

Changed Text


যেহেতু আপনি দেখতে পাচ্ছেন যে তিনটি statement এর আউটপুট একই  তাই আমরা উপরের মত  object  ব্যবহার না করেও static variable কে অ্যাক্সেস করতে পারি:

System.out.println(myClassVar);

মনে রাখবেন,  কেবল static variable কে এইভাবে অ্যাক্সেস করা যায়।  instance এবং local variable এর  জন্য এই নিয়ম প্রযোজ্য নয়।



ইনস্ট্যান্স ভেরিয়েবল- Instance variable

Class এর প্রতিটি instance(object) এর জন্য instance variable এর নিজস্ব অনুলিপি(copy) থাকে।

এটি স্ট্যাটিক ভেরিয়েবলের মত নয়, বরং প্রতিটি instance variable এর নিজস্ব পৃথক পৃথক instance variable থাকে।

আমরা নিম্নের প্রোগ্রামটিতে obj2 ব্যবহার করে instance variable এর মান পরিবর্তন করেছি এবং যখন আমরা তিনটি object ব্যবহার করেই ভেরিয়েবলটি প্রদর্শন করি তখন কেবল obj2 মানটি পরিবর্তিত হয়, অন্য সব মান অপরিবর্তিত থাকে। এটি এই প্রমাণ করে যে, তাদের কাছে instance variable এর নিজস্ব অনুলিপি রয়েছে।



ইনস্ট্যান্স ভেরিয়েবল এর উদাহরণ ( Example of Instance variable )

public class InstanceVarExample {
   String myInstanceVar="instance variable";
	
   public static void main(String args[]){
	InstanceVarExample obj = new InstanceVarExample();
	InstanceVarExample obj2 = new InstanceVarExample();
	InstanceVarExample obj3 = new InstanceVarExample();
		
	System.out.println(obj.myInstanceVar);
	System.out.println(obj2.myInstanceVar);
	System.out.println(obj3.myInstanceVar);

		
	obj2.myInstanceVar = "Changed Text";

		
	System.out.println(obj.myInstanceVar);
	System.out.println(obj2.myInstanceVar);
	System.out.println(obj3.myInstanceVar);
   }
} 


Output:

instance variable

instance variable

instance variable

instance variable

Changed Text

instance variable



Local Variable

লোকাল ভেরিয়েবল ক্লাসের method এর মধ্যে ঘোষণা(declare) করা হয়। এদের স্কোপ(scope) method এর মধ্যেই সীমাবদ্ধ থাকে। অর্থাৎ আপনি method এর বাইরে এদের মান পরিবর্তন করতে পারবেন না এবং অ্যাক্সেস করতেও পারবেন না।

এই উদাহরণে, আমি local variable এবং instance variable কে একই নামে ঘোষণা করেছি, এবং এটির মাধ্যমে local variable এর স্কোপ ব্যাখ্যা করার চেষ্টা করেছি।



লোকাল ভেরিয়েবল এর উদাহরণ (Example of Local variable)

public class VariableExample {
   // instance variable
   public String myVar="instance variable";
    
   public void myMethod(){
    	// local variable
    	String myVar = "Inside Method";
    	System.out.println(myVar);
   }
   public static void main(String args[]){
      // অবজেক্ট তৈরি
      VariableExample obj = new VariableExample();
    	
      /*  আমরা মেথড কল করে myVar এর value পরিবর্তন করবো। 
       * লোকাল ভেরিয়েবলের স্কোপ method এর মধ্যে সীমাবদ্ধ থাকে তা দেখানোর
       * জন্য আমরা method কলের পরে আবার myVar প্রদর্শন করছি ।  

       */
      System.out.println("Calling Method");
      obj.myMethod();
      System.out.println(obj.myVar);
   }
} 


Output:

Calling Method

Inside Method

instance variable


আপনি যদি instance variable ঘোষণা না করে  method  এর মধ্যে শুধুমাত্র local variable ঘোষণা(declare) করেন, তবে System.out.println(obj.myVar);  স্টেটমেন্ট  compilation error নিক্ষেপ করবে। কারণ, আপনি method এর  বাইরে থেকে  local variable কে পরিবর্তন বা অ্যাক্সেস করতে পারবেন না।



পরবর্তী টিউটোরিয়ালে যাওয়ার পূর্বে নিচের জাভা প্রোগ্রামগুলো নিজে চেষ্টা করুন।

  1. ASCII ক্যারেক্টার ভ্যালু নির্ণয়ের জন্য জাভা প্রোগ্রাম
  2. দুটি সংখ্যার গুনফল নির্ণয়ের  জন্য জাভা প্রোগ্রাম
  3. ত্রিভুজের ক্ষেত্রফল নির্ণয়ের জন্য জাভা প্রোগ্রাম