자바/자바팁

레퍼런스까지 같이 복사하는 Clone 함수 사용법

행복한 수지아빠 2013. 6. 27. 16:51
반응형


public class CloneMainCls {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   MyNumbers mn = new MyNumbers();
   MyNumbers mn2 = (MyNumbers) mn.clone();
   
   mn2.getNumbers()[1] = 3;
   
   System.out.println(mn.getNumbers()[1] + ":" + mn2.getNumbers()[1]);
   
  } catch (Exception e) {
   e.printStackTrace();
  }
  
 }

}

class MyNumbers implements Cloneable{
 private int[] numbers = null;
 
 MyNumbers(){
  numbers = new int[]{0,1,2,3,4,5,6,7,8,9};
 }
 @Override
 protected Object clone() throws CloneNotSupportedException {
  MyNumbers numbers2 = (MyNumbers)super.clone();
  numbers2.numbers = (int[]) numbers.clone();
  
  return numbers2;
 }
 
 public int[] getNumbers() {
  return numbers;
 }
}

반응형