Инициализированная переменная по умолчанию равна 0.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Инициализированная переменная по умолчанию равна 0.

Сообщение Anonymous »

Код: Выделить всё

class Test {

public static void main(String[] args) {
new TeamLead(1);
}

public static class TeamLead extends Programmer {

private int numTeamLead=2;

public TeamLead(int numTeamLead) {
super(numTeamLead);
this.numTeamLead = numTeamLead;
employ();
}

protected void employ() {
System.out.println(numTeamLead + " teamlead");
}

}

public static class Programmer {

private final int numProgrammer;

public Programmer(int numProgrammer) {
this.numProgrammer = numProgrammer;
employ();
}

protected void employ() {
System.out.println(numProgrammer + " programmer");
}
}
}

Почему в первом выводе указано 0 тимлидов вместо 2 тимлидов?
Я объявил numTeamLead=2 перед выполнением apply() и, тем не менее, при первом выполнении метода use() значение numTeamLead по какой-то причине по умолчанию равно 0. Я знаю, что super(numTeamLead) не может использовать Programmer.employ(), поскольку он защищен, поэтому вместо этого он использует TeamLead.employ(). Но почему тогда по умолчанию для numTeamLead установлено значение 0 перед повторным использованием метода use(), хотя я уже инициализировал numTeamLead перед выполнением любого метода?

Подробнее здесь: https://stackoverflow.com/questions/785 ... aults-to-0
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»