자바에서 인자전달을 단순 this만 사용하는 문법

조회수 1427회

안녕하세요 자바 문법중 이해가 가지 않는 것이 있어 올립니다.

예) GoogleApiClient gac = new GoogleApiClient.Builder(this, this, this)
.addApi(Games.API)
.build();

위와같이 this를 인자로 전달하는 경우가 문법적으로 어떻게 이해가 안가서 문의드려요

this.매개변수 : 자기 자신 매개변수의 값을 지칭 함 this(): 자기 자신의 생성자를 호출함

단순 this만을 이용해서 인자를 전달하는게 좀 생소해서요

쉽게 이해할만 예제 소스나 설명 주시면 감사하겠습니다.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    간단하게 예제 소스를 작성해봤습니다.

    @Test 붙어 있는 부분이 시작점입니다. 메인메서드라고 생각하시면 됩니다.

    public class ExampleClass {
    
        private String className = "ExampleClass";
    
        public String getClassName() {
            return className;
        }
    
        @Test
        public void startPotnt() throws Exception {
            TestClass testClass = new TestClass(this);
            /*
            this 는 자기 자신의 객체를 가르킨다고 보면 됩니다.
            this 로 TestClass 생성자에 ExampleClass 의 객체를 전달했으니,
            TestClass 생성자에서는 ExampleClass 타입으로 받아야함
            */
        }
    
    }
    
    class TestClass {
    
        private String className;
    
        public TestClass(ExampleClass exampleClass) {
            String className= exampleClass.getClassName();
            this.className= className;
            System.out.println(this.className); // ExampleClass
    
            /*
            현재 TestClass에서 className 은 
            1. TestClass 의 className 멤버 변수와 
            2. exampleClass.getClassName(); 의 값을 저장한 className 지역 변수 두개입니다.
            이 둘을 구분하기위해 자기 자신의 객체를 가르키는 this 를 사용하여
            this.className(TestClass 멤버변수를 가르킴)에 className(지역변수)의 값을 저장한 것 입니다.
            */
        }
    
    }
    
    • this를 이해하기에 너무 좋은 예제 였습니다. this를 이해하는데 도움이 많이 되었습니다. junnex 2016.8.12 15:58

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.