না, আমরা জাভাতে স্ট্যাটিক কনস্ট্রাক্টর সংজ্ঞায়িত করতে পারি না, যদি আমরা স্ট্যাটিক কীওয়ার্ড সহ কনস্ট্রাক্টর ডিফাইন করার চেষ্টা করি তবে একটি কম্পাইল-টাইম এরর হবে।
সাধারণত, স্ট্যাটিক মানে ক্লাস লেভেল। একটি কনস্ট্রাক্টর ব্যবহার করা হয় ইনস্ট্যান্স ভেরিয়েবলের প্রাথমিক মান অ্যাসাইন করতে। স্ট্যাটিক এবং কনস্ট্রাক্টর দুটি আলাদা এবং একে অপরের বিপরীত। ইনস্ট্যান্স ভেরিয়েবলের প্রাথমিক মান দিতে হলে আমরা একটি কনস্ট্রাক্টর ব্যবহার করি। স্ট্যাটিক ভেরিয়েবলের মান দিতে হলে আমরা স্ট্যাটিক ব্লক ব্যবহার করি।
উদাহরণ
public class StaticConstructorTest {
int x = 10; // স্ট্যাটিক কনস্ট্রাক্টর ঘোষণা
static StaticConstructorTest() {
System.out.println("Static Constructor");
}
public static void main(String args[]) {
StaticConstructorTest sct = new StaticConstructorTest();
}
}
উপরের উদাহরণে, আমরা একটি স্ট্যাটিক কনস্ট্রাক্টর তৈরি করেছি। কোড কম্পাইল হয় না এবং এটি একটি এরর থ্রো করে বলে মডিফায়ার static not allowed here।
আউটপুট
StaticConstructorTest.java:4: error: modifier static not allowed here