У меня есть следующий фрагмент кода:Можно ли инициализировать статическую переменную внутри конструктора?
class Constructor {
static String str;
public void Constructor() {
System.out.println("In constructor");
str = "Hello World";
}
public static void main(String[] args) {
Constructor c=new Constructor();
System.out.println(str);
}
}
Его выход является нулевым, даже если строка инициализации в конструкторе.
Почему это так?
общественности недействительным Constructor() {не является конструктором, его обычный метод – SpringLearner
Что касается вашего вопроса: вы можете, но вы не должны. Это очень плохой стиль. –
Но, на мой взгляд, не имеет смысла хотеть инициализировать статическую переменную внутри конструктора? Статическая переменная может быть доступна без объекта, поэтому переменная не должна быть статической, если вам нужно инициализировать конструктор. – user16655