세상에 이상을 더하다.

지금, Rooti와 함께라면.

Rooti는 상상을 만드는 공방입니다.

Lecture/Java

이거 예약어 : this reserved word

nanun_u.l_0 2023. 1. 25. 19:10
예약어(Reserved word)

 

컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어들이다. 예를 들어 C에서 return은 변수명이나 함수명으로 사용할 수 없다. 그런 단어들은 키워드이다. (위키피디아)

말 그대로,, 이미 특정한 의미로 사용되기 예약됨, 변수 이름이나 메서드로 사용하면 안 됨!

 

자신의 메모리를 가리키는 this

 

저번 글에서 잠시 언급한 예시를 다시 한번 보자.

 

( 수정사항 --> String[ ] coupons = new String[2]; )

 

생성자도 결국 메서드 중 하나이니 생성자로 설명을 하겠다. 메서드에서 입력하는 값( 이 예시에서는 int memberID, String memberShip )의 이름과 각 인스턴스가 가지고 있는 인스턴스 변수의 이름이 같으면 뭐가 입력값이고 뭐가 인스턴스변수인지 혼란이 올 수밖에 없다.

엥? 입력하는 변수이름과 인스턴스 변수이름을 다르게 하면 안 되나?라고 생각할 수도 있지만 음, 맞긴 하다... 근데 변수의 개수가 많아지면 좀 보기 싫어서 같은 의미를 두고 있는 변수는 이름을 같게 하되 유래가 다름을 this로 보여주는 것 아닐까..? ( 지극히 개인적인 생각입니다. )

 

생성자에서 다른 생성자를 호출하는 this

 

경우에 따라 하나의 클래스 내부에 여러 생성자가 필요할 때가 있다고 한다.

그럴 때 어떤 생성자에서 다른 생성자를 호출할 필요가 있다. 예시 코드로 설명을 하겠다.

 

 

이것을 보면 느낌이 올 것이다. 디폴트 생성자로 하나의 인스턴스를 생성하면 null의 느낌으로 디폴트 정보로 넣어주는 것이다.  당연히 생성자를 만들 때 입력해야 하는 형식 그대로 정보를 넣어줘야 오류가 나지 않는다.

여기서 주의해야 하는 것이, this를 사용해 인스턴스를 생성하기 전에는 그 인스턴스에

관련된 코드를 적으면 아직 인스턴스화가 안되어 있다 보니 오류가 날것이다.

반응형