elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Como pasar un objeto a una constructora sin crear una copia?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como pasar un objeto a una constructora sin crear una copia?  (Leído 2,659 veces)
xaps

Desconectado Desconectado

Mensajes: 157



Ver Perfil
¿Como pasar un objeto a una constructora sin crear una copia?
« en: 28 Febrero 2014, 11:46 am »

Buenas, estoy aprendiendo java y me he propuesto crear un TicTacToe como ejercicio de entrenamiento.
He desarrollado dos clases, la clase Jugador y la clase Tablero. El esquema que tengo pensado es crear una instancia de Tablero y posteriormente pasar un puntero a cada Jugador para que puedan operar directamente con el, pero no se como hacer esto.
Les pongo un ejemplo:
Código
  1. public class Tablero
  2. {
  3. ...
  4. }
  5.  
  6. public class Jugador
  7. {
  8.  private Tablero tablero;
  9.  Jugador(Tablero tablero)
  10.  {
  11.    this.tablero = tablero;
  12.  }
  13. }

Entonces, si hiciera:
Código
  1. Tablero tab = new Tablero();
  2. Jugador jug = new Jugador(tab);

El objeto jug contendrá una copia de tab, o un puntero a tab?


En línea

"The programmers of tomorrow are the wizards of the future" - Gave Newel
egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: ¿Como pasar un objeto a una constructora sin crear una copia?
« Respuesta #1 en: 28 Febrero 2014, 13:13 pm »

El objeto jug contendrá una copia de tab, o un puntero a tab?


Tendrá una referencia al objeto creado, así que no te preocupes. En ningún momento tendrás una copia del tablero.


En línea

xaps

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: ¿Como pasar un objeto a una constructora sin crear una copia?
« Respuesta #2 en: 28 Febrero 2014, 13:47 pm »

Gracias, pero estoy algo confundido. En Java como diferencio cuando se crea una copia y cuando se hace una referencia?
En línea

"The programmers of tomorrow are the wizards of the future" - Gave Newel
egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: ¿Como pasar un objeto a una constructora sin crear una copia?
« Respuesta #3 en: 28 Febrero 2014, 14:01 pm »

En Java todas las clases, interfaces, enums y arreglos se pasan por referencia. Lo único que se pasa por valor (copia) son las variables primitivas como int, double, char, etc... (String no es variable primitiva)

Espero que te haya quedado claro.

Saludos!
En línea

xaps

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: ¿Como pasar un objeto a una constructora sin crear una copia?
« Respuesta #4 en: 28 Febrero 2014, 14:25 pm »

En Java todas las clases, interfaces, enums y arreglos se pasan por referencia. Lo único que se pasa por valor (copia) son las variables primitivas como int, double, char, etc... (String no es variable primitiva)

Espero que te haya quedado claro.

Saludos!
Me ha quedado claro, muchas gracias! :)

En caso de que quisiera crear una copia de un objeto, la manera sería con una constructora-copiadora, cierto?
En línea

"The programmers of tomorrow are the wizards of the future" - Gave Newel
egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: ¿Como pasar un objeto a una constructora sin crear una copia?
« Respuesta #5 en: 28 Febrero 2014, 14:48 pm »

En caso de que quisiera crear una copia de un objeto, la manera sería con una constructora-copiadora, cierto?

Así es, aunque no todas las clases tienen un constructor copia. También puedes averiguar el uso de clone que sirve para clonar un objeto pero, requiere más estudio para entender bien su uso.

Saludos!
En línea

xaps

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: ¿Como pasar un objeto a una constructora sin crear una copia?
« Respuesta #6 en: 28 Febrero 2014, 15:01 pm »

Muchas gracias por la ayuda!
En línea

"The programmers of tomorrow are the wizards of the future" - Gave Newel
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como crear un efecto de fuego sobre un objeto
Diseño Gráfico
Velku 5 7,113 Último mensaje 29 Septiembre 2009, 15:53 pm
por Sub_Cero
Crear un objeto dentro de otro objeto
Programación Visual Basic
Tokes 7 7,107 Último mensaje 30 Agosto 2010, 05:41 am
por BlackZeroX
Como crear un objeto sin inicializarlo?
PHP
Skeletron 1 2,679 Último mensaje 5 Enero 2011, 18:14 pm
por AFelipeTrujillo
POO - ¿Diferencia entre usar una constructora-copiadora a Objeto = Objeto? « 1 2 »
Programación General
xaps 12 9,152 Último mensaje 16 Noviembre 2013, 21:41 pm
por xaps
pasar un objeto a un objeto, es posible?? « 1 2 »
Java
kikian94 12 7,332 Último mensaje 13 Marzo 2014, 08:41 am
por kikian94
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines