Autor Tema: Cómo crear duplicado de objeto en Java sin perder la referencia inicial CU00912C  (Leído 2409 veces)

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
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;}

}
« Última modificación: 19 de Junio 2017, 20:45 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".