[Java] 2_5_클래스와 객체2(1)

Haeun Noh·2022년 8월 14일

0814


이번 강의에서는 this 라는 예약어에 대해서 배운다. 다양한 개발 블로그들을 보면서 this라는 단어가 심심치 않게 보였고 어디에 사용하는 건지 자세히 알고 싶었는데 모처럼 흥미로운 주제를 배울 수 있어서 신났었던 과거의 내가 생각난다. 그럼 바로 정리를 시작해보도록 하겠다.



this 예약어

: 생성된 인스턴스 스스로를 가리키는 예약어

JAVA C++에 있다.

this 예약어가 하는 일

  • 자기 자신의 생성된 인스턴스의 메모리를 가리킨다.
  • 생성자에서 다른 생성자를 호출한다.
  • 자신의 주소를 반환한다.

this는 자신의 메모리를 가리키는 예약어이다.

public Person(String name, int age) {
	this.name = name;
	this.age = age;
}

위 코드에서 this를 생략하게 되면 name이나 age파라미터로 사용되는 nameage로 인식된다. 여기서 파라미터매개변수를 뜻한다.

인스턴스가 생성될 때는 new 키워드를 사용하지 않는 한 생성자가 호출되지는 않는다. 생성자가 호출되는 시점은 객체 내에서 this 예약어를 이용하면 다른 생성자를 호출할 수 있게 된다. 단, 생성자에서 다른 생성자를 호출할 때에 this 예약어를 사용하게 된다.

public Person() {
	this("이름없음", 1);
}
public Person(String name, int age) {
	this.name = name;
	this.age = age;
}

this를 이용하여 다른 생성자를 호출할 때에는 그 이전에 어떠한 명령문장 (statement)도 사용할 수 없다. 쉽게 말해 this 앞에는 어떠한 명령문 (statement) 도 올 수 없다는 것이다.
위와 같이 생성자가 여러 개이고 매개변수만 다른 경우, 이 경우를 생성자 오버로딩 (constructor overloading)이라고 한다.



profile
Tistory로 옮기게 되었습니다. @haeunnohh

0개의 댓글