# 스코프와 this
만들어주신 강의 덕분에 this에 대한 이해가 쉬웠습니다.
this.변수 = 변수; 를 통해서 해당 변수가 현재 클래스의 인스턴스 변수를 사용한다 라는 것과
마찬가지로 이것에 대한 응용인
this.메소드 = 메소드; 를 통해 해당 메소드는 해당 클래스 안의 인스턴스 메소드를 사용한다는 것에 대한 개념은 이해를 했습니다.
Q) write(this) 처럼 인수 부분에 들어가는 this는 어떤식으로 이해하면 좋을까요?
#### CODE <a class='btn btn-default' href='/codes/20726'>Link</a>
```
public class CoffeeTest {
public static void main(String[] args) {
// 커피 객체 생성
Coffee americano = new Coffee("아메리카노", 1500);
System.out.printf("커피값 인상 전 => %s\n", americano.toString());
// 커피 값 인상: 1500 -> 1800
americano.setPrice(1800);
System.out.printf("커피값 인상 후 => %s\n", americano.toString());
}
}
class Coffee {
// 필드(인스턴스 변수)
private String name;
private int price;
// 생성자
public Coffee(String name, int price) {
/* 1. this 키워드를 사용하여 필드를 초기화하세요.*/
this.name = name;
this.price = price;
}
// 세터
public void setPrice(int price) {
/* 2. this 키워드를 사용하여 필드를 변경하세요.*/
this.price = price;
}
// 메소드
public String toString() {
return String.format("Coffee { name: %s, price: %d }", name, price);
}
}
```
#### INPUT
```
```
#### OUPUT
```
커피값 인상 전 => Coffee { name: 아메리카노, price: 1500 }
커피값 인상 후 => Coffee { name: 아메리카노, price: 1800 }
```
sehongpark님의 답변
# 자기 자신을 전달 값으로 던지고 있네요.
사실 간단한 코드에서는, 자신을 전달할 이유가 없습니다.
아마도, 제시하신 코드에는 복잡한 디자인 패턴이 적용되어있을 것입니다.
간단히 정리하면, "자기 자신을 전달한다" 인데요. 그 이상은, 디자인 패턴을 학습하실 때 차근차근 학습해보시면 좋을 것 같습니다.
decsh님의 답변
어렵네요~ 계속해서 강의 들어 보도록 하겠습니다! 감사합니다!