Foros del Web » Programación para mayores de 30 ;) » Java »

Crear copia de con constructor

Estas en el tema de Crear copia de con constructor en el foro de Java en Foros del Web. Buenas, os comento, he comenzado a estudiar JAVA, y estoy realizando un ejercicio que llevaba bastante bien pero no encuentro la forma de crear una ...
  #1 (permalink)  
Antiguo 30/12/2012, 11:40
 
Fecha de Ingreso: noviembre-2011
Ubicación: Menorca
Mensajes: 36
Antigüedad: 12 años, 4 meses
Puntos: 0
Crear copia de con constructor

Buenas, os comento, he comenzado a estudiar JAVA, y estoy realizando un ejercicio que llevaba bastante bien pero no encuentro la forma de crear una copia es decir.

teniendo lo siguiente:

Código:
public fecha(int nd, int nm, int na){

		if(comprobar(nd, nm, na) == true){
		d = (byte)nd;
		m = (short)nm;
		a = na;
		System.out.println(nd+"-"+nm+"-"+na);
		}else{
			System.out.println("1-1-1980");
		}
	}
ahora debo crear un constructor que sea una copia de esa..

he probado con esto para probar, pero no doy con la solución.

Código:
fecha copia(fecha c){
		system.out.prinln(fecha.nd);
	}
espero que podáis explicarme un poco sobre esto.

Gracias

y os deseo un feliz día mañana 31 de diciembre
  #2 (permalink)  
Antiguo 31/12/2012, 06:06
 
Fecha de Ingreso: septiembre-2012
Mensajes: 23
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Crear copia de con constructor

prueba con el método clone() de la clase Object, devuelve una copia exacta.

Sería algo así:

Código java:
Ver original
  1. public MiClase implements Cloneable{
  2.  
  3.  
  4.     ....
  5.  
  6.  
  7.         public Object clone(){
  8.  
  9.              Object obj = null;
  10.               try {
  11.             obj=  super.clone();
  12.             return obj;
  13.               } catch (CloneNotSupportedException e) {         
  14.             System.out.println("Excepción: "+e.getMessage());
  15.             return null;
  16.         }
  17.           ....
  18.         }
  19. }

El try y el catch son para capturar excepciones, pero no los hagas caso. Para poder implementar el método clone(), tienes que redefinirlo de la interfaz Cloneable, por eso la primera línea es "... implements Cloneable"

A la hora de hacer la copia sería:

Código java:
Ver original
  1. MiClase fecha2 = (MiClase) fecha.clone();

como el método clone devuelve una clase Object tienes que convertirlo.
Espero que te sirva.
  #3 (permalink)  
Antiguo 31/12/2012, 09:50
 
Fecha de Ingreso: noviembre-2011
Ubicación: Menorca
Mensajes: 36
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Crear copia de con constructor

Gracias pero el ejercicio consiste en que lo cree yo.

lo que se me ocurre es crear volver a crear el objeto con nuevos parámetros y utilizar this para clonar los datos.

this.dia = nd;

pero no encuentro la solución

Etiquetas: constructor, copia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.