Autor Tema: Cómo duplicar objetos interface Cloneable y método clone del API Java CU00912C  (Leído 2002 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola, dejo el Ejercicio CU00912C del tutorial de programación avanzada Java: ejemplo resuelto interface Cloneable y método clone del API Java. Cómo duplicar objetos .

Citar
EJERCICIO

Define una clase que tenga cuatro atributos de tipo String cada uno de los cuales podrá ser exclusivamente una cadena de 12 ceros o de 12 unos. Es decir, cada atributo puede valer o bien "000000000000" ó bien "111111111111". La clase debe implementar la interface Cloneable y disponer de un método que permita ver el resultado de concatenar sus atributos.

Crea otra clase con el main donde crees un objeto cuyos atributos serán: "000000000000", "000000000000", "000000000000", "000000000000".

A partir de este primer objeto, crea cuatro copias usando el método clone() y modifícalas para llegar a tener cinco objetos (el inicial más los otros cuatro copias del original y luego modificados) cuyo contenido mostrarás por pantalla, debiendo obtener el siguiente resultado:

000000000000000000000000000000000000000000000000

111111111111000000000000000000000000000000000000

000000000000111111111111000000000000000000000000

000000000000000000000000111111111111000000000000

000000000000000000000000000000000000111111111111


Citar
Codigo de la Clase MetodoClone

Código: [Seleccionar]
public class MetodoClone implements Cloneable
{
    private  String cero = new String(new char[12]).replace("\0", "0");
    private String chain1, chain2, chain3, chain4;
    public MetodoClone(){
        chain1= cero;
        chain2= cero;
        chain3= cero;
        chain4= cero;
    }

    public MetodoClone(String chain1,String chain2,String chain3,String chain4){
        this.chain1= chain1;
        this.chain2= chain2;
        this.chain3= chain3;
        this.chain4= chain4;
    }

    public void setChain1(String chain1){
        this.chain1=chain1;
    }

    public void setChain2(String chain2){
        this.chain2=chain2;
    }

    public void setChain3(String chain3){
        this.chain3=chain3;
    }

    public void setChain4(String chain4){
        this.chain4=chain4;
    }

    public String getChain1(){
        return chain1;
    }

    public String getChain2(){
        return chain2;
    }

    public String getChain3(){
        return chain3;
    }

    public String getChain4(){
        return chain4;
    }

    public MetodoClone clone(){
        MetodoClone duplicado =new MetodoClone(this.chain1,this.chain2,this.chain3,this.chain4);
        return duplicado;
    }

    public String toString() {
        String msg="";
        msg=chain1+ chain2+ chain3+ chain4;
        return msg;
    }

}

Codigo de la Clase TestMetodClonable
Código: [Seleccionar]
public class TestMetodClonable
{

    public static void main(String arg[]){
        String uno = new String(new char[12]).replace("\0", "1");
        String cero = new String(new char[12]).replace("\0", "0");

        MetodoClone duplicado=new MetodoClone(cero,cero,cero,cero);
        System.out.println(duplicado.toString());
        MetodoClone d1=duplicado.clone();
        MetodoClone d2=duplicado.clone();
        MetodoClone d3=duplicado.clone();
        MetodoClone d4=duplicado.clone();
        d1.setChain1(uno);
        d2.setChain2(uno);
        d3.setChain3(uno);
        d4.setChain4(uno);
        System.out.println(d1.toString()+"\n"+d2.toString()+"\n"+d3.toString()+"\n"+d4.toString());

    }

}

Gracias ;)
« Última modificación: 20 de Agosto 2019, 19:36 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, para quien revise este ejercicio, está correctamente resuelto. Salu2

 

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".