# 스코프와 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 } ```
# 자기 자신을 전달 값으로 던지고 있네요. 사실 간단한 코드에서는, 자신을 전달할 이유가 없습니다. 아마도, 제시하신 코드에는 복잡한 디자인 패턴이 적용되어있을 것입니다. 간단히 정리하면, "자기 자신을 전달한다" 인데요. 그 이상은, 디자인 패턴을 학습하실 때 차근차근 학습해보시면 좋을 것 같습니다.
어렵네요~ 계속해서 강의 들어 보도록 하겠습니다! 감사합니다!