У меня возник вопрос о конструкторах по умолчанию в java.
Насколько я читал о конструкторах в java, конструктор по умолчанию инициализирует все переменные экземпляра значениями по умолчанию. но что, если мы определяем конструктор для класса, то как же переменные инициализируются значениями по умолчанию, если мы хотим их?Почему переменные инициализируются значениями по умолчанию, даже если у нас есть конструктор
Предположим, у меня есть 2 файла a.java
public class a
{
int x;
public a(int z)
{
if(z > 0)
{
x = z;
}
}
public void get()
{
System.out.println(x);
}
}
и b.java
public class b
{
public static void main(String[] args)
{
a obj = new a(-4);
obj.get();
}
}
Теперь здесь условие (г> 0) не выполняется, так что х инициализируется нулем. но что именно делает это, поскольку они не являются конструкторами по умолчанию в классе a.
Вы никогда не вызываете конструктор по умолчанию 'a' здесь ... – fge
Класс' a' не имеет конструктора по умолчанию. –