반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Eclipse
- 단위테스트
- Java
- java테스트
- 자바문법
- 문자열
- ArrayList
- 인텔리제이
- string
- input
- js
- 배열
- junit5
- Visual Studio Code
- junit
- math
- html
- list
- json
- Array
- 정규식
- CSS
- HashMap
- 자바
- vscode
- IntelliJ
- 자바스크립트
- javascript
- 테스트자동화
- 이클립스
Archives
- Today
- Total
어제 오늘 내일
[Java] this 키워드 사용법 본문
Java에서 this 키워드는 현재 객체(instance) 를 가리키는 참조입니다.
클래스 내부에서 객체 자신의 변수, 메서드, 생성자를 명확하게 구분하거나 호출할 때 사용됩니다.
this는 객체지향 프로그래밍에서 매우 중요한 개념이므로 정확히 이해하는 것이 좋습니다.
1. this로 멤버 변수와 지역 변수 구분하기
메서드나 생성자 안에서 매개변수 이름과 멤버 변수 이름이 같을 때, 구분하기 위해 this를 사용합니다.
예제
class Person {
String name;
Person(String name) {
this.name = name; // this.name = 멤버 변수, name = 매개변수
}
}
설명
- this.name → 객체의 멤버 변수
- name → 생성자의 매개변수
- 동일한 이름을 구분하기 위해 this 사용
2. this로 현재 객체의 메서드 호출하기
클래스 내부에서 자신의 메서드를 호출할 때 사용할 수 있습니다.
class Person {
void hello() {
System.out.println("Hello");
}
void sayHello() {
this.hello(); // 현재 객체의 hello() 호출
}
}
this는 생략 가능하지만, 명확성을 위해 사용되기도 합니다.
3. this()로 같은 클래스의 다른 생성자 호출하기
this()는 현재 클래스의 다른 생성자를 호출할 때 사용됩니다.
단, 생성자의 첫 번째 줄에만 사용할 수 있습니다.
예제
class Person {
String name;
int age;
Person() {
this("Unknown", 0); // 다른 생성자 호출
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
설명
- 생성자 코드 중복을 막고 일관된 초기화 방식 유지
- 반드시 생성자 첫 줄에서 호출해야 함
4. this로 현재 객체 참조 전달하기
메서드의 인자로 자신의 객체를 넘길 때 this를 사용할 수 있습니다.
class Person {
void introduce() {
Helper.print(this); // 현재 객체 넘기기
}
}
이런 방식은 이벤트 처리, 콜백, 객체 비교 등에 자주 사용됩니다.
5. this는 정적(static) 문맥에서 사용할 수 없다
static 메서드나 static 블록에서는 this를 사용할 수 없습니다.
class Test {
static void testMethod() {
// this.name; // ❌ 오류: this는 인스턴스가 있어야 사용 가능
}
}
이유
- static은 객체 없이 사용되는 문맥
- this는 “현재 객체”를 의미하므로 static에서는 존재하지 않음
6. 전체 예제
class Car {
String model;
int year;
Car(String model) {
this(model, 2024); // 다른 생성자 호출
}
Car(String model, int year) {
this.model = model; // 멤버 변수와 매개변수 구분
this.year = year;
}
void printInfo() {
System.out.println("모델: " + this.model + ", 연식: " + this.year);
}
}
public class Main {
public static void main(String[] args) {
Car c = new Car("Sonata");
c.printInfo();
}
}
출력:
모델: Sonata, 연식: 2024
7. 정리
- this는 현재 객체를 가리키는 참조
- 멤버 변수와 매개변수를 구분할 때 사용
- 자신의 메서드 또는 생성자를 호출할 때 사용
- static 문맥에서는 사용 불가
반응형
'IT > Java' 카테고리의 다른 글
| [Java] 캡슐화(Encapsulation)란? (0) | 2025.12.27 |
|---|---|
| [Java] 다형성(Polymorphism) 이해하기 (0) | 2025.12.26 |
| [Java] static 변수와 static 메서드 차이 (0) | 2025.12.25 |
| [Java] final 키워드 (변수, 메서드, 클래스) (0) | 2025.12.25 |
| [Java] 추상 클래스와 인터페이스 차이 (0) | 2025.12.24 |
Comments
