Java - Invocar método sin instancia mediante el constructor

 
Vista:
Imágen de perfil de Sin
Val: 4
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Invocar método sin instancia mediante el constructor

Publicado por Sin (2 intervenciones) el 18/11/2018 12:13:53
Saludos a todos.

Tengo una gran duda de como se llama esta acción y cómo se administra en la memoria.

Dentro del metodo main() realizo estas sentencias o instrucciones.

public static void main(String[] args) {
int i = 0;
int j = new Random().nextInt(100); // Como se llama está forma de actuar o como se denomina.

- Tengo claro que lo que hace es directamente invocar al metodo constructor de la clase Random , invoque el metodo nextInt y me genere un numero aleatorio que se almacena dentro de la variable int j pero no se como se define este tipo de acción y no sé si es correcto hacer esta clase de instrucciones.

- Tengo curiosidad en saber como se llama este tipo de acción.

Gracias por vuestra atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Invocar método sin instancia mediante el constructor

Publicado por Tom (1831 intervenciones) el 18/11/2018 20:45:44
¿ Sin instancia ? ¿ seguro ?
No sé si esa "forma de actuar" tiene algún nombre específico ... a mí me parece una expresión de asignación normal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Invocar método sin instancia mediante el constructor

Publicado por Kabuto (1381 intervenciones) el 18/11/2018 22:53:01
Desde el momento que haces un new LoQueSea() estás instanciando un objeto.

La diferencia en este caso es que no lo asignas a ninguna variable que haga referencia a ese objeto instanciado. Por lo tanto, dicho objeto queda sin referencia ninguna y una vez ha terminado la linea de código donde lo has instanciado, el objeto queda inaccesible, es como si ya no estuviera. Pero en realidad si que está, hasta que el Garbage Collector de la JVM haga limpieza.

Esto no es ni malo ni bueno, simplemente unas veces tiene sentido hacerlo y otras no.
En tu caso por ejemplo, si no vas a necesitar acceder más a ese objeto Random porque solo necesitas que te proporcione ese entero y ya está, pues sí tiene sentido hacerlo así. Te ahorras alguna línea de código al no declarar una variable e incluso queda algo más legible.

En cambio, si necesitases generar más numeros aleatorios a lo largo del programa, o tal vez que otros métodos/clases tuvieran acceso a ese objeto desde otras partes del programa o algo similar, entonces lo inteligente sería asignarlo a una variable para tenerlo referenciado.

No se si tiene algún nombre específico instanciar objetos de este modo, es posible que sí
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sin
Val: 4
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Invocar método sin instancia mediante el constructor

Publicado por Sin (2 intervenciones) el 19/11/2018 09:34:52
Saludos y gracias por tu respuesta.

Si , tengo claro que es una instancia porque con el operador 'new' reservará memoria en el 'HEAP' de JVM que usará el 'JRE' para almacenar los objetos que una vez usados el recolector de basura 'Garbage Collector' lo eliminará de la memoria.

- Pero tenía curiosidad en saber como se llama esta invocación directa a esta 'sentencia'.

¿ Clase Anónima ? ¿ instanciación sin variable de instancia ? ...

- Más que nada por si tengo que pedirselo a alguien ponerle nombre o si en algún libro o guía ya viene definido este tipo de acciones.

Gracias por vuestra atención !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Invocar método sin instancia mediante el constructor

Publicado por Tom (1831 intervenciones) el 19/11/2018 10:21:07
Es que no es nada "raro" ... ni ninguna "feature" de Java ...
Si quieres darle algún nombre llámalo "Instancia Temporal" o, quizás "Objeto Temporal", pero vamos, para entendernos porque es un concepto bastante genérico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar