CodeGym/Java Blog/এলোমেলো/জাভা ভেরিয়েবল
John Squirrels
লেভেল 41
San Francisco

জাভা ভেরিয়েবল

এলোমেলো দলে প্রকাশিত
সদস্যগণ
এই নিবন্ধে, আমরা জাভা ভেরিয়েবলগুলি কী এবং কীভাবে তাদের সাথে কাজ করতে হবে তা সমস্ত জাভা শিক্ষার্থীদের কাছে ব্যাখ্যা করতে যাচ্ছি।

জাভা ভেরিয়েবল কি

জাভাতে একটি পরিবর্তনশীলকে একটি বাক্স হিসাবে ভাবা যেতে পারে। এই "বাক্স" এর একটি নির্দিষ্ট আকার আছে: এটির জন্য বরাদ্দ করা মেমরি। কত মেমরি বরাদ্দ করা হবে ভেরিয়েবলের ধরনের উপর নির্ভর করে, তবে আমরা এই সম্পর্কে একটু পরে কথা বলতে যাচ্ছি। একই সময়ে, বাক্সের আকার নিজেই তৈরি করার পরে পরিবর্তন করা যাবে না, তবে বিষয়বস্তুগুলি পরিবর্তন করা যেতে পারে। বাক্স খালি হতে পারে. আপনি এটিতে কিছু মান "সন্নিবেশ" করতে পারেন এবং তারপরে কিছু অন্য মান বের করতে পারেন। সুতরাং, একটি ভেরিয়েবল হল একটি ক্ষেত্র যা একটি জাভা প্রোগ্রাম কার্যকর করার সময় ডেটা মান সংরক্ষণ করে। এই বাক্সে গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে:
  • এটি সর্বদা শুধুমাত্র একটি মান ধারণ করতে পারে (বা খালি হতে পারে, এই ক্ষেত্রে এটি ডিফল্ট মান ধারণ করবে),
  • এটির একটি ডেটা টাইপ আছে। এর আকার নির্ভর করে ডেটার প্রকারের উপর, সেইসাথে মেমরির কোন নির্দিষ্ট এলাকাটির জন্য জায়গাটি বরাদ্দ করা হয়েছে (যেখানে এটি রয়েছে)।
জাভাতে ভেরিয়েবল - 1

কিভাবে ভেরিয়েবল ডিক্লেয়ার করবেন

জাভাতে ভেরিয়েবল ঘোষণা করতে, আপনাকে এর ধরন এবং নাম উল্লেখ করতে হবে। এখানে তিনটি ভেরিয়েবল ঘোষণা করার একটি উদাহরণ:
int myInt;
String s;
Object variableName;
এখানে int , স্ট্রিং এবং অবজেক্ট হল ডেটা টাইপ এবং myInt , s , variableName হল পরিবর্তনশীল নাম। ডাটা টাইপ অবশ্যই প্রোগ্রামের প্রয়োজনের উপর ভিত্তি করে বেছে নিতে হবে এবং একটি নাম বেছে নেওয়া ভাল যাতে এটি কী সম্পর্কে স্পষ্ট হয়। অবশ্যই, নতুনদের জন্য এটি এতটা কঠোর নয়, কিন্তু বড় প্রকল্পে, 's'-এর মতো পরিবর্তনশীল নাম কোডের পাঠযোগ্যতাকে ক্ষতিগ্রস্ত করতে পারে। সুতরাং ভেরিয়েবলের নামকরণে এমনভাবে অভ্যস্ত হওয়া ভাল যা এটি পরিষ্কার করে দেয় যে তারা প্রথম থেকেই কীসের জন্য। অবশ্যই কারণের মধ্যে।

কিভাবে ভেরিয়েবল শুরু করতে হয়

যখন আপনি একটি পরিবর্তনশীল ঘোষণা করেন, আপনি এটির জন্য মেমরি বরাদ্দ করেন। সূচনা মানে হল যে আপনি একটি নির্দিষ্ট মান "বক্সে" রাখুন। এটি পরিবর্তনশীল ঘোষণার সময় বা পরে অবিলম্বে করা যেতে পারে। এছাড়াও, একটি ভেরিয়েবলের মান প্রোগ্রাম নির্বাহের সময় পরিবর্তিত হতে পারে। উদাহরণ:
public class VariableTest {
    public static void main(String[] args) {
        int myInt = 5;
        String s;
        s = "init";
        System.out.println(s);
        s = s+5;
        System.out.println(s);
    }
}
এখানে আমরা myInt ভেরিয়েবলটিকে এক লাইনে ঘোষণা এবং আরম্ভ করেছি , সাথে সাথে এটির জন্য মেমরি বরাদ্দ করে (প্রতিটি int সংখ্যার জন্য 32 বিট), এটিকে একটি নাম দিয়েছি এবং তারপর বরাদ্দকৃত মেমরিতে মান 5 রেখেছি। তারপরে আমরা ঘোষণা করেছি যে আমরা স্ট্রিং s এর জন্য মেমরি স্পেস বরাদ্দ করছি , এবং ইতিমধ্যে একটি পৃথক কমান্ড এতে "init" মান স্থাপন করেছে। এর পরে, আমরা স্ট্রিংটি প্রিন্ট করেছি এবং s ভেরিয়েবলের মান পরিবর্তন করেছি । এই প্রোগ্রামে, আমরা লাইনগুলি মুদ্রণ করেছি এবং আপনি যদি এটি চালান তবে আপনি নিম্নলিখিত ফলাফল দেখতে পাবেন:
init init5

জাভাতে ভেরিয়েবলের ডেটা প্রকার: আদিম এবং অ-আদিম

জাভাতে ভেরিয়েবলের ডেটা প্রকারগুলি দুটি গ্রুপে বিভক্ত:
  • আদিম ডেটা প্রকারের মধ্যে রয়েছে বাইট , শর্ট , int , লং , ফ্লোট , ডবল , বুলিয়ান এবং চার
  • নন-প্রিমিটিভ ডেটা টাইপ যেমন স্ট্রিং , অ্যারে এবং ক্লাস
এখানে ভেরিয়েবলের সাথে কাজ করার একটি উদাহরণ রয়েছে:
public class VariableTest {
   public static void main(String[] args) {

       int myInt = - 5;               // integer (whole number)
       float myFloat = 2.718281828459045f;    // Floating point number
       char myLetter = 'a';         // character
       boolean myBool = true;       // boolean
       String myText = "Hero";     // String
       System.out.println(myInt + " " +
               myFloat +" " + myLetter + " " +  myBool + " " + myText);
       Student myStudent = new Student("Walker","Johnny", "Kyle", null);

   }
}
int , char , বুলিয়ান এবং float হল আদিম। স্ট্রিং অ-আদিম। কি myStudent ভেরিয়েবল সম্পর্কে ? এটি ব্যবহারকারীর তৈরি ক্লাস স্টুডেন্টের একটি অবজেক্ট । এটি অ-আদি ভেরিয়েবলের সাথে কাজটি চিত্রিত করার জন্য তৈরি করা হয়েছিল। তারা জাভাতে সংখ্যাগরিষ্ঠ, যেহেতু এই প্রোগ্রামিং ভাষার প্রায় সবকিছুই একটি বস্তু। বোঝার জন্য, এখানে ছাত্র শ্রেণীর কোড :
import java.util.Date;

public class Student {
   String surname;
   String name;
   String secondName;
   Long birthday; // Long instead of long is used by Gson/Jackson json parsers and various orm databases

   public Student(String surname, String name, String secondName, Date birthday ){
       this.surname = surname;
       this.name = name;
       this.secondName = secondName;
       this.birthday = birthday == null ? 0 : birthday.getTime();
   }

   @Override
   public int hashCode(){
       //TODO: check for nulls
       //return surname.hashCode() ^ name.hashCode() ^ secondName.hashCode() ^ (birthday.hashCode());
       return (surname + name + secondName + birthday).hashCode();
   }
   @Override
   public boolean equals(Object other_) {
       Student other = (Student)other_;
       return (surname == null || surname.equals(other.surname) )
               && (name == null || name.equals(other.name))
               && (secondName == null || secondName.equals(other.secondName))
               && (birthday == null || birthday.equals(other.birthday));
   }
}

জাভাতে ভেরিয়েবলের ধরন: স্থানীয়, উদাহরণ এবং স্ট্যাটিক

জাভাতে তিনটি ভিন্ন ধরণের ভেরিয়েবল রয়েছে, আমরা সেগুলিকে নিম্নরূপ তালিকাভুক্ত করেছি:
  1. স্থানীয় ভেরিয়েবল
  2. উদাহরণস্বরূপ ভেরিয়েবল
  3. স্ট্যাটিক ভেরিয়েবল

স্থানীয় ভেরিয়েবল

পদ্ধতির মূল অংশের ভিতরে ঘোষিত একটি পরিবর্তনশীলকে স্থানীয় চলক বলা হয়। এছাড়াও, স্থানীয় ভেরিয়েবলগুলি কনস্ট্রাক্টর এবং ব্লকের ভিতরে ঘোষণা করা হয়। আপনি শুধুমাত্র সেই পদ্ধতি, কনস্ট্রাক্টর বা ব্লকের মধ্যে স্থানীয় ভেরিয়েবল ব্যবহার করতে পারেন যেখানে সেগুলি তৈরি করা হয়েছিল এবং ক্লাসের অন্যান্য পদ্ধতিগুলি এমনকি ভেরিয়েবলটি বিদ্যমান রয়েছে তা সচেতন নয়। সুতরাং স্থানীয় ভেরিয়েবল তৈরি করা হয় যখন মেথড, কনস্ট্রাক্টর বা ব্লক প্রবেশ করানো হয় এবং মেথড, কনস্ট্রাক্টর বা ব্লক কাজ না করলে ভেরিয়েবলটি ধ্বংস হয়ে যায়। একটি স্থানীয় ভেরিয়েবলকে স্ট্যাটিক কীওয়ার্ড দিয়ে সংজ্ঞায়িত করা যায় না । এমনকি আরও: আপনি স্থানীয় ভেরিয়েবলের জন্য অ্যাক্সেস মডিফায়ার ব্যবহার করতে পারবেন না। এখানে একটি উদাহরণ:
public class VariableTest {
   public static void main(String[] args) {
       System.out.println(myMethod("C plus "));
   }
           private static String myMethod(String myString) {
       String myOtherString = "plus";
       return myString + myOtherString;
   }
}
এখানে myOtherString একটি স্থানীয় পরিবর্তনশীল। আপনি অন্য পদ্ধতি থেকে এটি ব্যবহার করতে পারবেন না, কিন্তু myMethod । স্থানীয় ভেরিয়েবলের ডিফল্ট মান থাকতে পারে না। প্রোগ্রামে অন্তত একটি স্থানীয় ভেরিয়েবল চালু না হলে প্রোগ্রামটি সঠিকভাবে কাজ করবে না। চলুন আগের উদাহরণগুলির একটিতে একটি ছোট পরিবর্তন করি এবং মাইবুল ভেরিয়েবল শুরু করতে "ভুলে যাই":
public class VariableTest {
   public static void main(String[] args) {

       int myInt = - 5;               // integer (whole number)
       float myFloat = 2.718281828459045f;    // Floating point
       char myLetter = 'a';         // character
       boolean myBool;       // boolean
       String myText = "Hero";     // String
       System.out.println(myInt + " " +
               myFloat +" " + myLetter + " " +  myBool + " " + myText);
       Student myStudent = new Student("Walker","Johnny", "Kyle", null);

   }
}
যদি আমরা প্রোগ্রাম চালানোর চেষ্টা করি, এটি একটি ত্রুটি নিক্ষেপ করবে:
ত্রুটি:(10, 50) java: ভেরিয়েবল myBool আরম্ভ করা হয়নি

উদাহরণস্বরূপ ভেরিয়েবল

ক্লাসের ভিতরে ঘোষিত একটি ভেরিয়েবল কিন্তু যেকোন মেথড, কনস্ট্রাক্টর বা ব্লকের বডির বাইরে তাকে ইনস্ট্যান্স ভ্যারিয়েবল বলে। নতুন কীওয়ার্ড ব্যবহার করে একটি অবজেক্ট তৈরি করা হলে ইনস্ট্যান্স ভেরিয়েবল তৈরি করা হয় । বস্তু ধ্বংস হলে তা ধ্বংস হয়। এটি স্ট্যাটিক হিসাবে ঘোষণা করা যাবে না, তবে আপনি উদাহরণ ভেরিয়েবলের জন্য অ্যাক্সেস মডিফায়ার ব্যবহার করতে পারেন। ইনস্ট্যান্স ভেরিয়েবলগুলি ক্লাসের সমস্ত পদ্ধতি, কনস্ট্রাক্টর এবং ব্লকের জন্য দৃশ্যমান। সাধারণত ইনস্ট্যান্স ভেরিয়েবল ব্যক্তিগত, কিন্তু আপনি সাবক্লাসের জন্য দৃশ্যমানতা পরিবর্তন করতে পারেন। স্থানীয় ভেরিয়েবলের বিপরীতে ইনস্ট্যান্স ভেরিয়েবলের ডিফল্ট মান থাকে। সমস্ত সংখ্যার আদিম প্রকারের জন্য ডিফল্ট মান হল 0, বুলিয়ানদের জন্য এটি মিথ্যা, এবং অবজেক্ট রেফারেন্সের জন্য এটি শূন্য। ঘোষণার সময় বা কনস্ট্রাক্টরের মধ্যে মান নির্ধারণ করা যেতে পারে। এখানে একটি উদাহরণ:
//instance variable example
public class Employee {

   // here we have a public instance variable. It is visible for this class and child classes
   public String name;

   //this instance variable is private so it’s visible for the Employee class only. You can use setters and getters to get it
   private double salary;

   public Employee (String empName) {
       name = empName;
   }

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public double getSalary() {
       return salary;
   }

   public void setSalary(double employeeSalary) {
       salary = employeeSalary;
   }

   public static void main(String args[]) {
       Employee employee = new Employee("Johnny");
       employee.setSalary(1500);
       System.out.println("name = " + employee.getName());
       System.out.println("salary = " + employee.getSalary());
   }
}

স্ট্যাটিক ভেরিয়েবল

যে ভেরিয়েবলকে স্ট্যাটিক হিসেবে ঘোষণা করা হয় তাকে স্ট্যাটিক ভেরিয়েবল বলে। জাভা আপনাকে একটি পদ্ধতি, কনস্ট্রাক্টর বা ব্লকের বাইরে এই ধরনের ভেরিয়েবল ঘোষণা করার প্রস্তাব দেয়। এটা স্থানীয় হতে পারে না, তারা ক্লাসের অন্তর্গত, উদাহরণের জন্য নয়। এর মানে হল যে একটি স্ট্যাটিক ভেরিয়েবলের একটি একক অনুলিপি একবার তৈরি এবং ক্লাসের সমস্ত দৃষ্টান্তের মধ্যে ভাগ করা হয়। স্ট্যাটিক ভেরিয়েবলের জন্য মেমরি বরাদ্দ শুধুমাত্র একবার ঘটে যখন ক্লাসটি মেমরিতে লোড করা হয়। তাদের কোন দৃশ্যমানতা থাকতে পারে, তবে সাধারণত তারা সর্বজনীন হিসাবে ঘোষণা করা হয়। তারা যেমন উদাহরণ ভেরিয়েবল হিসাবে ডিফল্ট মান আছে.
public class Box
{
   public void add(int data)
   {
       Storage.sum = Storage.sum + data;
       Storage.count++;
   }

   public void remove(int data)
   {
       Storage.sum = Storage.sum - data;
       Storage.count--;
   }
}

public class Storage
{
   public static int count = 0;
   public static int sum = 0;
}
উপরের উদাহরণে, আমরা একটি পৃথক স্টোরেজ ক্লাস তৈরি করেছি, এতে গণনা এবং যোগফল পরিবর্তন করেছি এবং সেগুলিকে স্ট্যাটিক ঘোষণা করেছি। পাবলিক স্ট্যাটিক ভেরিয়েবল যেকোন প্রোগ্রাম পদ্ধতি থেকে অ্যাক্সেস করা যেতে পারে (এবং শুধুমাত্র একটি পদ্ধতি থেকে নয়)। আপনি যা শিখেছেন তা শক্তিশালী করার জন্য, আমরা আপনাকে আমাদের জাভা কোর্স থেকে একটি ভিডিও পাঠ দেখার পরামর্শ দিই
মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই