Cloneまだ曖昧

////////////////////////
import java.math.BigDecimal;
import java.util.Date;

public class Test {

public static void main(String[] args) {

CloneTest c1 = new CloneTest();
c1.setStr("1");
c1.setDt(new Date(0, 0, 1));
c1.setBd(new BigDecimal(1));
c1.setI(1);
c1.setObj(new Obj("111"));

CloneTest c2 = (CloneTest)c1.clone();
c2.setStr("2");
c2.setDt(new Date(0, 1, 2));
c2.setBd(new BigDecimal(2));
c2.setI(2);
Obj obj2 = c1.getObj();
obj2.setSs("222");
c2.setObj(obj2);

System.out.println(c1.toString());
System.out.println(c2.toString());

}

}
////////////////////////

public class Obj {

public Obj(String ss){
this.ss = ss;
}

private String ss;

/**
* ssを取得します。
* @return ss
*/
public String getSs() {
return ss;
}

/**
* ssを設定します。
* @param ss ss
*/
public void setSs(String ss) {
this.ss = ss;
}

@Override
public String toString() {
return this.ss;
}
}

////////////////////////
import java.math.BigDecimal;
import java.util.Date;

public class CloneTest implements Cloneable {

private String str;

private Date dt;

private BigDecimal bd;

private int i;

private Obj obj;

/**
* strを取得します。
* @return str
*/
public String getStr() {
return str;
}

/**
* strを設定します。
* @param str str
*/
public void setStr(String str) {
this.str = str;
}

/**
* dtを取得します。
* @return dt
*/
public Date getDt() {
return dt;
}

/**
* dtを設定します。
* @param dt dt
*/
public void setDt(Date dt) {
this.dt = dt;
}

/**
* bdを取得します。
* @return bd
*/
public BigDecimal getBd() {
return bd;
}

/**
* bdを設定します。
* @param bd bd
*/
public void setBd(BigDecimal bd) {
this.bd = bd;
}

/**
* iを取得します。
* @return i
*/
public int getI() {
return i;
}

/**
* iを設定します。
* @param i i
*/
public void setI(int i) {
this.i = i;
}

/**
* objを取得します。
* @return obj
*/
public Obj getObj() {
return obj;
}

/**
* objを設定します。
* @param obj obj
*/
public void setObj(Obj obj) {
this.obj = obj;
}

@Override
public String toString() {
return new
StringBuilder().append(str).append("/").append(dt).append("/").append(bd).append("/").append(i).append("/").append(obj).toString();
}

@Override
protected Object clone() {
try{
return super.clone();
}catch(CloneNotSupportedException e){
throw new RuntimeException(e);
}
}


}
////////////////////////


1/Mon Jan 01 00:00:00 JST 1900/1/1/222
2/Fri Feb 02 00:00:00 JST 1900/2/2/222