Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Luis Fdo Carvajal en 18 de Mayo 2017, 21:22

Título: Cómo crear duplicado de objeto en Java sin perder la referencia inicial CU00912C
Publicado por: Luis Fdo Carvajal en 18 de Mayo 2017, 21:22
Buenas tardes, ejercicio CU00912C del curso avanzado de Java.

Para su revisión, gracias

Código: [Seleccionar]
package policia;

/**
 *
 * @author ITCO1724
 */
public class TestPrograma {
   
     public static void main(String arg[]) {
        Policia p = new Policia("000000000000", "000000000000","000000000000" , "000000000000");
        Policia p2 = p.clone();
        Policia p3 = p2.clone();
        Policia p4 = p3.clone();
        Policia p5 = p4.clone();

         // hemos clonado en el objeto p2 los datos del perro p , por tanto p2
        // tiene como nombre C  y una edad de 10 y sus vacunas Rabia
       

        p.name="000000000000";
        p.Propietario= "000000000000";
        p.Barrio="000000000000";
        p.Vacunas = "000000000000";
        p2.name="111111111111";
        p2.Propietario= "000000000000";
        p2.Barrio="000000000000";
        p2.Vacunas = "000000000000";
        p3.name="000000000000";
        p3.Propietario= "111111111111";
        p3.Barrio="000000000000";
        p3.Vacunas = "000000000000";
        p4.name="000000000000";
        p4.Propietario= "000000000000";
        p4.Barrio="111111111111";
        p4.Vacunas = "000000000000";
        p5.name="000000000000";
        p5.Propietario= "000000000000";
        p5.Barrio="000000000000";
        p5.Vacunas = "111111111111";
       
       
       
        System.out.println("Datos Perro p:"+ p.name+ p.Propietario + p.Barrio + p.Vacunas );
        System.out.println("Datos Perro p2 clon:"+ p2.name+ p2.Propietario+ p.Barrio + p2.Vacunas );
        System.out.println("Datos Perro p3 clon:"+ p3.name+ p3.Propietario+ p3.Barrio + p3.Vacunas );
        System.out.println("Datos Perro p4 clon:"+ p4.name+ p4.Propietario+ p4.Barrio + p4.Vacunas );
        System.out.println("Datos Perro p4 clon:"+ p5.name+ p5.Propietario+ p5.Barrio + p5.Vacunas );
       }
 }


Código: [Seleccionar]
package policia;

public class Policia implements Cloneable {

public String name;
public String Propietario;
public String Barrio;
public String Vacunas;



public Policia (String name, String Propietario, String Barrio, String Vacunas) {
    super();
    this.name = name;
    this.Propietario = Propietario;
    this.Barrio = Barrio;
    this.Vacunas = Vacunas;
        }

 
     public Policia clone() {
      Policia clon = new Policia(this.name, this.Propietario, this.Barrio, this.Vacunas);
      return clon;}


        public String getName() {return name;}
        public String getPropietario() {return Propietario;}
        public String getBarrio() {return Barrio;}
        public String getVacunas() {return Vacunas;}


        public void setName(String name) {this.name = name;}
        public void setPropietario(String Propietario) {this.Propietario = Propietario;}
        public void setBarrio(String Barrio) {this.Barrio = Barrio;}
        public void setVacunas(String Vacunas) {this.Vacunas = Vacunas;}

}
Título: Re:Cómo crear duplicado de objeto en Java sin perder la referencia inicial CU00912C
Publicado por: Alex Rodríguez en 19 de Junio 2017, 20:45
Hola Luis Fdo Carvajal

Tu clase Policia no cumple con lo que pedía el enunciado relativo a "La clase debe implementar la interface Cloneable y disponer de un método que permita ver el resultado de concatenar sus atributos."

Por otro lado, la idea del ejercicio era modificar únicamente un atributo de los objetos clonados, mientras que tú has modificado o establecido los cuatro atributos.

Este ejercicio deberías replantearlo

Puedes consultar una solución posible para el ejercicio en https://www.aprenderaprogramar.com/foros/index.php?topic=5703.0

Saludos