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

Haeun Noh·2022년 8월 14일
0

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
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글