상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바에서 this 키워드란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`this` 키워드는 <a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>에서 매우 중요한 역할을 하는 예<a href='https://sangseek.com/sangseeks/약어/ko'>약어</a>로, 주로 객체 지향 프로그래밍에서 객체 자신을 참조하는 데 사용됩니다. `this` 키워드는 주로 다음과 같은 상황에서 사용됩니다. 1. <a href='https://sangseek.com/sangseeks/인스턴스 변수/ko'>인스턴스 변수</a>와 <a href='https://sangseek.com/sangseeks/매개변수/ko'>매개변수</a> 구분메서드나 생성자에서 매개변수 이름과 인스턴스 변수 이름이 동일할 경우, `this` 키워드를 사용하여 인스턴스 변수를 명확하게 구분할 수 있습니다. 예를 들어:```javapublic class Person { private String name; public Person(String name) { this.name = name; // this.name은 인스턴스 변수, name은 매개변수 }}```위의 코드에서 `this.name`은 클래스의 인스턴스 변수 `name`을 가리키고, 매개변수 `name`은 메서드의 지역 변수입니다. `this`를 사용함으로써 두 변수를 명확히 구분할 수 있습니다. 2. 현재 객체의 참조`this`는 현재 객체를 참조하는 데 사용됩니다. 메서드 내에서 `this`를 사용하면 해당 메서드를 호출한 객체를 가리킵니다. 예를 들어:```javapublic class Car { private String model; public Car(String model) { this.model = model; } public void display() { System.out.println("Car model: " + this.model); }}```위의 `display` 메서드에서 `this.model`은 현재 객체의 `model` 변수를 참조합니다. 이처럼 `this`를 사용하면 객체의 상태를 쉽게 접근하고 조작할 수 있습니다. 3. 다른 생성자 호출`this`는 같은 클래스 내에서 다른 생성자를 호출하는 데도 사용될 수 있습니다. 이를 통해 코드 중복을 줄이고, 생성자 간의 관계를 명확히 할 수 있습니다. 예를 들어:```javapublic class Rectangle { private int width; private int height; public Rectangle() { this(1, 1); // 기본값으로 다른 생성자 호출 } public Rectangle(int width, int height) { this.width = width; this.height = height; }}```위의 코드에서는 <a href='https://sangseek.com/sangseeks/기본 생성자/ko'>기본 생성자</a>가 호출될 때, 다른 생성자를 호출하여 기본값을 설정합니다. 4. 메서드 체이닝`this`를 사용하여 메서드 체이닝을 구현할 수 있습니다. 메서드 체이닝이란, 메서드가 자신을 반환하여 연속적으로 메서드를 호출할 수 있게 하는 기법입니다. 예를 들어:```javapublic class Builder { private String name; private int age; public Builder setName(String name) { this.name = name; return this; // 현재 객체를 반환 } public Builder setAge(int age) { this.age = age; return this; // 현재 객체를 반환 } public void build() { System.out.println("Name: " + this.name + ", Age: " + this.age); }}```위의 `Builder` 클래스에서는 `setName`과 `setAge` 메서드가 `this`를 반환하여 메서드 체이닝을 가능하게 합니다. 이렇게 하면 다음과 같이 사용할 수 있습니다:```javaBuilder builder = new Builder();builder.setName("Alice").setAge(30).build();``` 5. 익명 클래스와 <a href='https://sangseek.com/sangseeks/람다 표현식/ko'>람다 표현식</a>에서의 사용익명 클래스나 람다 표현식에서도 `this`를 사용할 수 있습니다. 이 경우 `this`는 해당 익명 클래스나 람다 표현식의 인스턴스를 가리킵니다. 예를 들어:```javapublic class Outer { private String name = "Outer"; public void createInner() { Inner inner = new Inner(); inner.display(); } class Inner { private String name = "Inner"; public void display() { System.out.println(this.name); // Inner 클래스의 name System.out.println(Outer.this.name); // Outer 클래스의 name } }}```위의 코드에서 `this.name`은 `Inner` 클래스의 `name`을 참조하고, `Outer.this.name`은 `Outer` 클래스의 `name`을 참조합니다. 결론`this` 키워드는 자바에서 객체 지향 프로그래밍의 <a href='https://sangseek.com/sangseeks/핵심 개념/ko'>핵심 개념</a>을 이해하고 활용하는 데 필수적인 요소입니다. 인스턴스 변수를 구분하고, 현재 객체를 참조하며, 생성자 간의 호출, 메서드 체이닝, 익명 클래스와 람다 표현식에서의 사용 등 다양한 상황에서 유용하게 사용됩니다. 이를 통해 코드의 가독성을 높이고, 객체 지향 프로그래밍의 장점을 극대화할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기