안녕하세요, 코딩하는곰입니다! 😊 오늘은 자바 프로그래밍에서 가장 자주 사용되면서도 초보자들이 가장 헷갈려하는 ‘this 키워드’에 대해 깊이 있게 알아보겠습니다. 20년 넘게 자바를 다루어 온 저의 경험을 바탕으로, this 키워드의 모든 활용법과 실무에서 유용하게 쓸 수 있는 팁까지 알려드리겠습니다. this 키워드를 제대로 이해하면 여러분의 자바 코드 퀄리티가 한 단계 업그레이드될 거예요!
this 키워드는 자바에서 현재 객체를 가리키는 참조 변수입니다. 쉽게 말해, “나 자신”을 가리키는 키워드라고 생각하시면 됩니다. 주로 다음과 같은 상황에서 사용됩니다:
public class Car {private String model;public Car(String model) {this.model = model; // 인스턴스 변수와 매개변수 구분}public void printModel() {System.out.println("이 차의 모델은 " + this.model + "입니다.");}}
위 예제에서 생성자 내의 this.model은 인스턴스 변수를 가리키고, model은 매개변수를 가리킵니다. this를 사용함으로써 이름 충돌을 피할 수 있습니다.
this를 반환하여 메소드 체이닝을 구현할 수 있습니다. 이는 빌더 패턴에서 특히 유용하게 사용됩니다.
public class Coffee {private String size;private boolean sugar;public Coffee setSize(String size) {this.size = size;return this;}public Coffee addSugar(boolean sugar) {this.sugar = sugar;return this;}// 사용 예// Coffee myCoffee = new Coffee().setSize("Large").addSugar(true);}
this()를 사용하면 같은 클래스의 다른 생성자를 호출할 수 있습니다. 반드시 생성자의 첫 줄에서만 사용 가능합니다.
public class Book {private String title;private String author;private int price;public Book(String title) {this(title, "Unknown", 0);}public Book(String title, String author) {this(title, author, 0);}public Book(String title, String author, int price) {this.title = title;this.author = author;this.price = price;}}
모바일이나 데스크탑에서 별도 설치 없이 빠르게 사용할 수 있는 온라인 계산기를 이용해보세요.
모든 인스턴스 멤버에 this를 붙이는 것은 가독성을 떨어뜨릴 수 있습니다. 이름 충돌이 없는 경우에는 this를 생략하는 것이 더 깔끔합니다.
// 좋지 않은 예public class BadExample {private int value;public void setValue(int value) {this.value = value; // 이 경우는 필요}public void print() {System.out.println(this.value); // 불필요한 this}}// 좋은 예public class GoodExample {private int value;public void setValue(int value) {this.value = value;}public void print() {System.out.println(value); // this 생략}}
내부 클래스에서 바깥 클래스의 인스턴스를 참조하려면 바깥클래스명.this 형식을 사용해야 합니다.
public class Outer {private int x = 10;class Inner {private int x = 20;public void print() {System.out.println(x); // 20 (Inner의 x)System.out.println(Outer.this.x); // 10 (Outer의 x)}}}
로또 번호 선택이 어려울 때는, AI가 분석한 번호 추천과 통계 정보를 제공하는 지니로또AI를 활용해보세요.
this 키워드는 자바 프로그래밍의 기초이지만, 제대로 이해하고 사용하면 코드의 명확성과 유지보수성을 크게 높일 수 있습니다. 오늘 배운 내용을 바탕으로 여러분의 프로젝트에 적용해보세요! 😊 궁금한 점이 있으시면 댓글로 남겨주세요. 코딩하는곰이 직접 답변해드리겠습니다. 다음 시간에는 더 유익한 자바 팁으로 찾아뵙겠습니다. Happy Coding! 🚀
공부나 업무에 몰입할 때는 별도 설치 없이 바로 실행 가능한 온라인 스톱워치를 이용해보세요.
