Какие различия есть между инициализированием переменных член в заявлении и в строителе?

Есть какое-то различие между этими двумя способами инициализировать члены класса?

Инициализируя переменные в строителе:

public class Clase {

    int valor;
    OtraClase otraClase;

    public Clase() {
        this.valor = 1;
        this.otraClase = new OtraClase();

        // codigo extra aqui... 
    }
}

Инициализируя переменные в заявлении:

public class Clase {

    int valor = 1;
    OtraClase otraClase = new OtraClase();

    public Clase() {
        // codigo extra aqui... 
    }
}
0
задан 27.01.2017, 20:07
1 ответ

Оба полностью vÃ: lidas, но если тебе удается иметь 2 или mÃ: s строители в твоем классе возможно, что наставлять переменные в declaraci¦n ты эффективнее. Сейчас, también существует третий способ это делать с "стартапом" инстанции, ты можешь делать это (они работают перед призывом к строителю):

public class Clase {
    int valor ;
    OtraClase otraClase ;

    {
      valor = 1;
      otraClase = new OtraClase();
    }

    public Clase() {
        // codigo extra aqui... 
    }
}
1
ответ дан 24.11.2019, 11:25