Соглашение в java - «новый» вне конструктора / метод?

Простой вопрос. Мой разум написал код, похожий на этот (который просто объясняет вам мой вопрос, он совершенно бесполезен ....)

class Example{
    private int[] tab = new int[10];
    public Example() {
        for(int i = 0 ; i < 10 ; i++)
            tab[i] = (int)(Math.random()*100);
        for(int i = 0 ; i < 10 ; i++)
            System.out.println(tab[i]);
    }
    public static void main(String[] arg) {
        Example ex = new Example();
    }
}

Я сказал ему, что он следует положить new внутри конструктора

class Example{
    private int[] tab;
    public Example() {
        tab = new int[10];
    ...
}

Когда он спросил меня, почему, я не знал, что ответить: у меня не было определенного аргумента, кроме «так лучше». Насколько я знаю, вы можете инициализировать переменные базовыми типами (int, double ...), но для массивов вы должны делать это в конструкторе.

Итак:

  • действительно ли это лучше?
  • Есть ли веские причины: Соглашение, стиль?
  • Изменяет ли это что-нибудь, например, меньше / больше используемой памяти?

Я не рассматриваю случай, когда количество элементов может варьироваться. ВСЕГДА будет 10

7
задан skiwi 28 March 2014 в 14:46
поделиться