, поэтому я думаю, что чего-то не хватает. Я знаю, чтоНепонятно, как инициализируются мои переменные
- Если конструктор не поставляется, java делает его для вас.
- Если конструктор определен, стандартный конструктор java не используется.
- Конструктор используется для инициализации переменных
Вот несколько простых код:
class a {
int f; // a variable with no value
int c; // a variable later initialized by the constructor
int b = 5; // this will be second question, a less important one
a(){
c = 1; // Constructor initiatives C, but not F
}
public static void main(String[] args){
a var = new a();
System.out.print(var.f); // Please see my comment below
}
}
Вот что я не понимаю. Почему печатается var.f? Я не инициализировал f в конструкторе, но ошибки компиляции и инициализации значения 0. Я не понимаю, как «0» инициализируется значением «f», несмотря на то, что я не использовал его в конструкторе
Что касается b = 5, я понимаю, что этот код приводит, однако, я не думаю, что я понимаю, что/кто выполняет инициализацию здесь, это новый оператор или что-то еще? Благодарю.
Edit: так как ответы до сих пор не адресация мой вопрос
Я знаю, значения по умолчанию. Я думал, что это был конструктор по умолчанию, который их назначил, не так ли? Если нет, что назначает значения по умолчанию?
Что вы имеете в виду с '' null 'инициализируется' f '?? 'f' должен быть инициализирован до' 0'. –
Прошу прощения, я имел в виду 0. Это опечатка – Sam