1. this의 기본 의미
    1. 현재 객체 자신을 가리키는 참조 변수

    2. 즉, “지금 이 매서드/생성자를 호출한 객체”를 가리킴

      class A{
      	int x;
      	
      	void setX(int x){
      		this.x = x; //맴버 변수 x에 파라미터 x를 대입
      	}
      
      }
      
    3. 여기서 this.x → 객체의 멤버변수

    4. x → 메서드 파라미터

    5. 멤버 변수와 파라미터 이름이 같을 때 this로 구분

  2. 생성자 체이닝
    1. 생성자 체이닝

      1. 같은 생성자 안에서 다른 생성자 호출
      2. 목적 : 중복 초기화 코드 제거
      class A {
      	int x,y;
      	
      	A(int x, int y){
      		this.x = x;
      		this.y = y;
      	}
      	
      	A(int x){
      		this(x, 0); // 같은 클래스 다른 생성자 호출
      	}
      	
      	A(){
      		this(0); // 또 다른 생성자 호출
      	}
      }
      
      1. 반드시 생성자 첫 줄에서만 가능
  3. 메서드에서의 this
    1. 현재 객체 참조를 메서드 안에서 전달하거나, 반환할 때 사용 가능

    2. 예시

      class A {
      	int x;
      	
      	A setX(int x){
      		this.x = x;
      		return this; //메서드 체이닝 가능
      	}
      }
      
      1. 이렇게 하면

        A a= new A();
        a.setX(5).setX(10);
        

그래서 최종 값은 10