erdfvdsv

Páginas: 2 (255 palabras) Publicado: 16 de febrero de 2015
Duplicacion de objetos
Ing. Allen Víquez Marín

Duplicación de objetos (arrays)
Duplicación de arrays unidimensionales
Veamos de nuevo la clase Lista que hemos cambiadoligeramente para mostrar algunas particularidades del método clone. Le
hemos añadido un string que guarda el nombre de la lista.
public class Lista implements Cloneable{private int[] x;
public int n;
public String
nombre; //... }

Para duplicar un objeto de la clase Lista hemos de implementar el interface Cloneable y redefinir la funciónmiembro clone de
la clase base Object, de forma similar a como se hizo para definir la versión clone de la clase Rectangulo. Recuérdese que los
arrays vienen descritos porclases en Java. Por tanto, la versión clone de la clase Lista ha de contener el código correspondiente
a la copia del subobjeto array unidimensional de enteros int[].
publicObject clone(){
Lista obj=null;
try{
obj=(Lista)super.clone();
}catch(CloneNotSupportedException ex){
System.out.println(" no se puede duplicar");
}obj.x=(int[])obj.x.clone();
return obj;
}

Como podemos apreciar en el código, el subobjeto de la clase String se copia de forma automática como los tipos básicos de
datos, sin necesidad dehacerlo de forma explícita.
El código completo de este ejemplo, es el siguiente
public class Lista implements Cloneable{
private int[] x;
public int n;
public Stringnombre;
public Lista(int[] x, String nombre) {
this.x=x;
n=x.length;
this.nombre=nombre;
}
public Object clone(){
Lista obj=null;
try{
obj=(Lista)super.clone();}catch(CloneNotSupportedException ex){
System.out.println(" no se puede duplicar");
}
obj.x=(int[])obj.x.clone();
return obj;
}
private void ordenar(){
int aux;
for(int i=0; i
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS