package ch05;

public class Ch0506
{
 public Ch0506()
 {
  // TODO 자동 생성된 생성자 스텁
  int x=1, y=1;
  //기본자료형을 매개변수로 전달할 경우
  //사본을 전달하게 되므로 원본은 아무런 변화가 없다.
  valuechange(x,y);
  System.out.println("x : "+x+", y : "+y);
  Car  car = new Car("xxx","yyy");
  referenceChange(car);
  car.print();
 }
 public static void main(String[] args)
 {
  new Ch0506();
 }
 
 //클래스 자료형을 매개변수로 전달할 경우
 //원본이 전달되어 넘어오며 이의 멤버변수값을
 //바꿀 경우 원본을 바꾸는 것과 같다.
 public void referenceChange(Car carA)
 {
  carA.name="용대리";
  carA.owner="장하다";
 }
 
 public void valuechange(int a, int b)
 {
  a=10;
  b=11;
 }
}


****** Ch0507.java *****
package ch05;

public class Ch0507
{
 
 public static void main(String[] args)
 {
  //c는 2차원패턴, java는 3차원 패턴
  Car carA = new Car("소나타","주인장");
  //개체변수이므로 null이 되므로.. 먼저 할당해줘야 함.
  //Car내에 mission = new Mission();호출시.
  //carA.mission = new Mission();
  carA.mission.type = "오토";
  carA.mission.level = 5;
  carA.mission.print();
 
  Car carB = new Car("그랜져","홍길동");
  //Car내에 mission = new Mission();호출시.
  //carB.mission = new Mission();
  carB.mission.type = "스틱";
  carB.mission.level = 6;
  carB.mission.print();
 
  //속해있지 않는 Mission.
  Mission m = new Mission();
  m.level = 7;
  m.type = "세미스틱";
  m.print();
 }
}

Posted by 말없제이
,