junnex

this를 인자로 전달하는경우

안녕하세요
다른 코드를 보다가 this로 인자를 전달하는 경우를 봤는데요
예를들어서 아래와 같은 식인데요 이해가 되질 않아서 질문드려요

this를 인자로 넘겼다는 Car 객체를 넘겼다고 이해하면 되는건가요?

public class Car()
{
    public void Car()
    { }

    public void 메서드명(this)
    {
    .
    .
    .
    }
}
1 개의 답변
정찬형

질문하신 코드에서 this로 인자를 전달한다는 것의 정확한 뜻을 모르겠네요..

public class Car {
    String name;
    int number;

    public Car(String name, int number){
        this.name = name;
        this.number = number;
        this.CarPrint(this); // this를 인자로 전달
    }

    public void CarPrint(Car c){
        System.out.println(c.name + " " + c.number);
    }

    public static void main(String[] args){
        Car car = new Car("abc", 1234);
    }
}

위처럼 사용하는 것을 말하신 건가요?

  • 정찬형
    기능의 중복을 줄여, 코드를 잘 세분화 시킨다면 위와 같은 형태로 사용할 때가 있을 것입니다. ― 정찬형 2017.8.18 11:24
  • 정찬형
    참조 변수를 선언하여 메모리를 할당 받아야 this를 사용할 수 있습니다. 위에서 this는 car라는 참조변수가 생성되면서 값을 넘겨준 것이죠 ― 정찬형 2017.8.18 11:24
  • junnex
    네 맞습니다. this를 인자로 넘기게 되면 참조 변수가 없는 객체가 넘어간다고 이해하면 될까요? 또 어떤 경우에 저런 형태로 사용하나요? ― junnex 2017.8.18 11:24
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.