하나의 객체를 만들어 놓고 그 객체를 복제해서 사용하는 방법.
리턴을 하지 않아도 만들어 놓은 객체에 값이 저장된다.
package test;
import java.util.Enumeration;
import java.util.Hashtable;
public class test1 extends java.util.Hashtable {
protected String name = null;
public test1(String str){
super();
this.name = str;
}
/**
*
* @param target org.jsn.jdf.servlet.Box
*/
public synchronized Object clone()
{
test1 test1 = new test1(name);
Hashtable src = (Hashtable)this;
Hashtable target = (Hashtable)test1;
Enumeration e = src.keys();
while(e.hasMoreElements())
{
String key = (String) e.nextElement();
Object value = src.get(key);
target.put(key,value);
}
return test1;
}
}
//---------------------------------------------------------------------------------------------------
package test;
public class test2
{
protected String name = null;
/**
*
*/
public void str(test1 ts ){
ts.put("asdf", "111111111");
str1(ts);
}
public void str1(test1 ts ){
ts.put("aaaaa", "222222");
}
public void str4(test1 ts ){
ts.put("33333", "2322222");
}
public static void main(String []args){
test1 aaa= new test1("boxaa");
test2 ts = new test2();
ts.str(aaa);
System.out.println("-------------- ");
System.out.println(aaa);
System.out.println("-------------- ");
ts.str4(aaa);
System.out.println(aaa);
System.out.println("-------------- ");
System.out.println(aaa);
System.out.println("-------------- ");
System.out.println(aaa);
System.out.println("-------------- ");
System.out.println(aaa);
System.out.println("-------------- ");
}
}