Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 11 de Diciembre 2018, 12:27

Título: Cómo duplicar objetos interface Cloneable y método clone del API Java CU00912C
Publicado por: paramonso en 11 de Diciembre 2018, 12:27
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 ;)
Título: Re:Cómo duplicar objetos interface Cloneable y método clone del API Java CU00912C
Publicado por: Ogramar en 20 de Agosto 2019, 19:36
Buenas, para quien revise este ejercicio, está correctamente resuelto. Salu2