Заменяет ли конструктор (который мы кодируем) конструктор по умолчанию? - PullRequest
1 голос
/ 05 августа 2020
public class A {
  int i;
  int j;

  A() {
    i = 3; // I have not intialized j;
  }

  public static void main(String[] args) {
    A obj = new A();
    // Why obj.j is printed if my constructor had initialized int j?
    System.out.println(obj.i + obj.j); 
  }
}

если наш закодированный конструктор заменяет конструктор по умолчанию, тогда как ссылочные значения, которые я не инициализировал в моем конструкторе, получают значения по умолчанию

1 Ответ

2 голосов
/ 05 августа 2020

Все переменные экземпляра имеют значения по умолчанию, независимо от того, инициализирует ли их какой-либо конструктор. Все примитивные переменные экземпляра numeri c имеют значение по умолчанию 0, что является значением j в вашем коде (даже если вы его не инициализировали).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...