생성자를 이용한 인스턴스의 복사
::::특별한 Java Story 2013. 6. 3. 01:16 |/*내용을 복사 한 후 이클립스에서
ctrl + shift + F를 눌러주세요!!*/
// 생성자를 이용한 인스턴스의 복사랍니다.
// 이건 보니깐 인스턴스의 복사보다는 클래스를 복사해서 쓰는것 같은데..
//공부를 쫌더 해보면서 이해를 해보자.. 만만치 않네..그려.ㅋ
package JavaTest;
class Car3{
String color; //늘 그렇듯이 클래스잡고 매개변수 선언해주고~
String gearType;
int door;
//메서드?ㅋ 생성자 들어갑니다.
Car3(){ //매개변수가 아무것도 없는 Car 생성자
this("white","auto",4); //빨간줄 뜬다..아직 밑에 선언을 안해서~~ㅠ
}
Car3(String color,String gearType, int door){ //자~ 매개변수 3개짜리 앞에서 배운대로 업그레이드해서 선언
this.color = color;
this.gearType = gearType;
this.door = door;
}
//생성자 하나 더 생성할껀데.. 바로 맨 처음에 있는 매개변수가 없는 Car3() 놈을 복사해서 써보겠어~이거 인스턴스복사와 관련있음
Car3(Car3 c){ //매개변수가 들어갈 자리에 참조변수를 선언했어..참 웃기게 생겼지만 어쨋든 얘는 매개변수1개짜리임
color = c.color;
gearType = c.gearType; //앞전이랑 쫌 많이 틀리다. 뒤에서 부터 해석들어가는거 기억하자!
door = c.door;
}
}
public class CarTest3 {
public static void main(String[] args) {
//자! 그럼 메인에서 한번 살펴보자!
//인스턴스 생성
Car3 c1 = new Car3(); //매개변수가 없는 생성자 인스턴스
Car3 c2 = new Car3(c1); //머야?? 여기있었자나 인스턴스 c1을 c2가 복사한게..이게 복사랍니다.헐..
//그럼 저위에 Car3(Car3 c)는 복사가 아닌었던것이네....흠..생각생각
System.out.println(c1.color+","+c1.gearType+","+c1.door);
System.out.println(c2.color+","+c2.gearType+","+c2.door);
// 결과 값은 똑같네...저런 방식으로 복사가 된다는것을 보여주는것 같아..결국...이것도 문법인가보다..
//반복해서 자주 보는 수밖에..
c1.door = 100; //이건 c1의 door 만 바꿨엉~ 아래 결과를 보니..저장 공간이 다르다는것을 보여줌
System.out.println(c1.color+","+c1.gearType+","+c1.door);
System.out.println(c2.color+","+c2.gearType+","+c2.door);
}
}
'::::특별한 Java Story' 카테고리의 다른 글
인스턴스 메서드 (0) | 2013.06.03 |
---|---|
재귀호출 (메서드가 나와서..리~~) (0) | 2013.06.03 |
'인스턴스 초기화 메서드' (0) | 2013.06.03 |
생성자에서 다른 생성자 호출하기 this(), this (0) | 2013.06.03 |
매개변수가 있는 생성자 (0) | 2013.06.03 |