25. Kloniranje objekta u Javi

Kloniranje objekta je način za kreiranje egzaktne kopije objekta. Za ovu svrhu koristi se metod klase Object clone().
java.lang.Cloneable interfejs mora biti implementiran od klase čiji klon objekta želimo da kreiramo. Ako ne implementiramo Cloneable interfejs, clone() metod generiše CloneNotSupportedException.
clone() metod je definisan u klasi Object. Sintaksa clone() metoda je sljedeća:

protected Object clone() throws CloneNotSupportedException

Zašto koristiti clone() metod ?
clone() metod oslobađa od dodatnog procesnog zadatka za kreiranje egzaktne kopije objekta. Ako to izvodimo koristeći ključnu riječ new, to će zahtijevati dosta procesiranja i zato koristimo kloniranje objekta.
Prednosti kloniranja objekta
Manje procesnih zadataka.
Primjer clone() metoda (Kloniranje objekta)
Pogledajmo jednostavan primjer kloniranja objekta

class Student18 implements Cloneable{  
int rollno;  
String name;  
  
Student18(int rollno,String name){  
this.rollno=rollno;  
this.name=name;  
}  
  
public Object clone()throws CloneNotSupportedException{  
return super.clone();  
}  
  
public static void main(String args[]){  
try{  
Student18 s1=new Student18(101,"Petar");  
  
Student18 s2=(Student18)s1.clone();  
  
System.out.println(s1.rollno+" "+s1.name);  
System.out.println(s2.rollno+" "+s2.name);  
  
}catch(CloneNotSupportedException c){}  
 }  
}

Ispis na ekranu:
101 Petar
101 Petar

Kao što se može vidjeti u ovom primjeru, obe referentne varijable imaju istu vrijednost. Stoga, clone() kopira vrijednosti jednog objekta u drugi. Tako nije potrebno pisati eksplicitni kod da kopiramo vrijednosti jednog objekta u drugi.
Ako kreiramo drugi objekt pomoću ključne riječi new i dodijelimo vrijednosti drugog objekta tom objektu, to će zahtijevati mnogo procesiranja na tom objektu. Tako da se oslobodimo dodatnog procesiranja koristimo clone() metod.


Objektno orijentisano programiranje u Javi    Index