¿Por qué deberíamos instanciar una matriz en una línea diferente?

Lo siento, ignore esto porque no noté que la pregunta era sobre Java y asumí C ++. No conozco Java lo suficientemente bien como para responder al respecto.

————————————————————————————

Esto se debe a que en C ++ la definición de clase nunca debería tener instancias.

La clase es una forma de estilo para decir cuál debería ser el formato más adelante cuando realmente hace una instancia de él.

El lugar para las inicializaciones siempre está en el constructor, que luego creará la instancia durante meses.

Hasta que el constructor sea llamado, no tiene una instancia de meses porque aún no tiene una instancia de Calendario para contener meses.

No puede inicializar algo que aún no se ha creado.

Cualquier llamada a nuevo puede fallar. ¿Quién va a verificar el valor de retorno para nulo en la definición de clase? Es por eso que siempre haces llamadas al sistema como nuevas en un constructor, o mejor aún en un método de tiempo de ejecución init (). He visto que a las personas les va aún peor, como abrir un identificador de archivo en la definición de clase. Totalmente inaceptable. La definición de clase es solo eso, en realidad no es código.

De esta manera, se crea una instancia del objeto cuando sea necesario, ayuda a ahorrar memoria y a construir un sistema escalable.

En esta pregunta, suponga que es una variable que puede tener un tamaño dinámico y varía según la entrada, por ejemplo, días, semanas, meses, etc. Si crea una instancia en la parte superior, solo se le asignará la misma memoria para cada objeto y luego tendrá que volver a hacerlo. instanciarlo o expandirlo. Pero de esta manera ha creado un portaobjetos que aparece en la imagen solo cuando es necesario.

¿Por qué deberíamos instanciar una matriz en una línea diferente?

Es una preferencia, y puede ser una convención de codificación.

No es cierto que esté guardando memoria moviéndola al constructor: ya sea allí o en línea, la memoria se asignará cuando se cree una instancia de Calendar. El compilador de Java realmente colocará la versión en línea en el constructor.

La única razón por la que he hecho esto es cuando quiero que esa variable esté disponible para su uso fuera del alcance en el que se creó la instancia. Por ejemplo, una situación de prueba / captura. Si desea poder usar el objeto fuera del intento, debe establecer la variable fuera del intento y luego crear una instancia dentro de él. De esta manera, tendrá un valor nulo o se creará una instancia de la variable. Puede haber otros usos para esto, pero este es uno que he encontrado a menudo.