কম্পিউটার

কেন জাভা একটি কনস্ট্রাক্টরে স্ট্যাটিক ফাইনাল ভেরিয়েবলের আরম্ভ করার অনুমতি দেবে না?


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

উদাহরণ

<প্রি>ক্লাস ডেটা { স্ট্যাটিক ফাইনাল int সংখ্যা; ডেটা(int i) { সংখ্যা =i; }} পাবলিক ক্লাস কনস্ট্যান্ট উদাহরণ { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { System.out.println("ধ্রুবকের মান:"+Data.num); }}

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

ধ্রুবক উদাহরণ ^1 ত্রুটি

এই প্রোগ্রামটি কাজ করার জন্য আপনাকে একটি স্ট্যাটিক ব্লকে চূড়ান্ত স্ট্যাটিক ভেরিয়েবল শুরু করতে হবে −

উদাহরণ

<প্রি>ক্লাস ডেটা { স্ট্যাটিক ফাইনাল int সংখ্যা; স্ট্যাটিক { সংখ্যা =1000; }} পাবলিক ক্লাস কনস্ট্যান্ট উদাহরণ { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { System.out.println("ধ্রুবকের মান:"+Data.num); }}

আউটপুট

ধ্রুবকের মান:1000

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

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

  3. কেন কনস্ট্রাক্টর জাভাতে চূড়ান্ত হতে পারে না

  4. জাভাতে চূড়ান্ত পরিবর্তনশীল