কম্পিউটার

আমরা কি জাভাতে একটি ডিফল্ট কনস্ট্রাক্টরে স্ট্যাটিক ভেরিয়েবল শুরু করতে পারি?


ক্লাস/স্ট্যাটিক ভেরিয়েবল একটি ক্লাসের অন্তর্গত, যেমন ইনস্ট্যান্স ভেরিয়েবল সেগুলিকে ক্লাসের মধ্যে ঘোষণা করা হয়, যেকোনো পদ্ধতির বাইরে, কিন্তু স্ট্যাটিক কীওয়ার্ড দিয়ে।

এগুলি কম্পাইলের সময়ে অ্যাক্সেসের জন্য উপলব্ধ, আপনি ক্লাসের আগে/তাত্ক্ষণিক না করেই সেগুলি অ্যাক্সেস করতে পারেন, পুরো ক্লাস জুড়ে স্ট্যাটিক ক্ষেত্রের একটি মাত্র অনুলিপি উপলব্ধ রয়েছে অর্থাৎ স্ট্যাটিক ক্ষেত্রের মান সমস্ত অবজেক্টে একই হবে। আপনি স্ট্যাটিক কীওয়ার্ড ব্যবহার করে একটি স্ট্যাটিক ক্ষেত্র সংজ্ঞায়িত করতে পারেন।

আপনি যদি একটি শ্রেণীতে একটি স্ট্যাটিক ভেরিয়েবল ঘোষণা করেন, যদি আপনি এটি আরম্ভ না করে থাকেন, যেমন উদাহরণ ভেরিয়েবল কম্পাইলার ডিফল্ট কনস্ট্রাক্টরে ডিফল্ট মান দিয়ে শুরু করে।

হ্যাঁ, আপনি কনস্ট্রাক্টর ব্যবহার করে এই মানগুলিও শুরু করতে পারেন।

উদাহরণ

public class DefaultExample {
   static String name;
   static int age;
   DefaultExample() {
      name = "Krishna";
      age = 25;
   }
   public static void main(String args[]) {
      new DefaultExample();
      System.out.println(DefaultExample.name); System.out.println(DefaultExample.age);
   }
}

আউটপুট

Krishna
25

চূড়ান্ত এবং স্থির ঘোষণা করা হচ্ছে

কিন্তু আপনি যদি একটি ইনস্ট্যান্স ভেরিয়েবল স্ট্যাটিক ঘোষণা করেন এবং চূড়ান্ত জাভা কম্পাইলার ডিফল্ট কনস্ট্রাক্টরে এটি আরম্ভ করবে না, তাই স্ট্যাটিক এবং চূড়ান্ত ভেরিয়েবল শুরু করা বাধ্যতামূলক। আপনি যদি কম্পাইল না করেন তবে সময় ত্রুটি তৈরি হয়।

উদাহরণ

public class DefaultExample {
   static final String name;
   static final int age;
   public static void main(String args[]) {
      new DefaultExample();
      System.out.println(DefaultExample.name); System.out.println(DefaultExample.age);
   }
}

কম্পাইল সময় ত্রুটি

DefaultExample.java:2: error: variable name not initialized in the default constructor
   static final String name;
            ^
DefaultExample.java:3: error: variable age not initialized in the default constructor
   static final int age;
^
2 errors

কিন্তু, যদি আপনি একটি ভেরিয়েবল শুরু করার চেষ্টা করেন যা ঘোষণা করা হয় চূড়ান্ত এবং স্থির , কম্পাইলার এটিকে ভেরিয়েবল শুরু করার একটি প্রচেষ্টা হিসাবে বিবেচনা করে এবং একটি কম্পাইল সময় ত্রুটি তৈরি হবে৷

উদাহরণ

public class DefaultExample {
   static final String name;
   static final int age;
   DefaultExample() {
      name = "Krishna";
      age = 25;
   }
   public static void main(String args[]) {
      new DefaultExample();
      System.out.println(DefaultExample.name);
      System.out.println(DefaultExample.age);
   }
}

কম্পাইল সময় ত্রুটি

OutputDeviceAssignedDefaultExample.java:5: error: cannot assign a value to final variable name
   name = "Krishna";
   ^
DefaultExample.java:6: error: cannot assign a value to final variable age
   age = 25;
   ^
2 errors

  1. আমরা কি জাভাতে একটি কনস্ট্রাক্টরকে ব্যক্তিগত হিসাবে ঘোষণা করতে পারি?

  2. একটি কনস্ট্রাক্টর জাভাতে একটি ব্যতিক্রম নিক্ষেপ করতে পারেন?

  3. ইন্টারফেস ভেরিয়েবলগুলি জাভাতে ডিফল্টরূপে স্থির এবং চূড়ান্ত, কেন?

  4. আমরা কি জাভাতে ফাঁকা চূড়ান্ত ভেরিয়েবল শুরু করতে পারি?