예약어(Reserved word)
컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어들이다. 예를 들어 C에서 return은 변수명이나 함수명으로 사용할 수 없다. 그런 단어들은 키워드이다. (위키피디아)
말 그대로,, 이미 특정한 의미로 사용되기 예약됨, 변수 이름이나 메서드로 사용하면 안 됨!
자신의 메모리를 가리키는 this
저번 글에서 잠시 언급한 예시를 다시 한번 보자.
( 수정사항 --> String[ ] coupons = new String[2]; )
생성자도 결국 메서드 중 하나이니 생성자로 설명을 하겠다. 메서드에서 입력하는 값( 이 예시에서는 int memberID, String memberShip )의 이름과 각 인스턴스가 가지고 있는 인스턴스 변수의 이름이 같으면 뭐가 입력값이고 뭐가 인스턴스변수인지 혼란이 올 수밖에 없다.
엥? 입력하는 변수이름과 인스턴스 변수이름을 다르게 하면 안 되나?라고 생각할 수도 있지만 음, 맞긴 하다... 근데 변수의 개수가 많아지면 좀 보기 싫어서 같은 의미를 두고 있는 변수는 이름을 같게 하되 유래가 다름을 this로 보여주는 것 아닐까..? ( 지극히 개인적인 생각입니다. )
생성자에서 다른 생성자를 호출하는 this
경우에 따라 하나의 클래스 내부에 여러 생성자가 필요할 때가 있다고 한다.
그럴 때 어떤 생성자에서 다른 생성자를 호출할 필요가 있다. 예시 코드로 설명을 하겠다.
이것을 보면 느낌이 올 것이다. 디폴트 생성자로 하나의 인스턴스를 생성하면 null의 느낌으로 디폴트 정보로 넣어주는 것이다. 당연히 생성자를 만들 때 입력해야 하는 형식 그대로 정보를 넣어줘야 오류가 나지 않는다.
여기서 주의해야 하는 것이, this를 사용해 인스턴스를 생성하기 전에는 그 인스턴스에
관련된 코드를 적으면 아직 인스턴스화가 안되어 있다 보니 오류가 날것이다.
'Lecture > Java' 카테고리의 다른 글
싱글톤 패턴 : Singleton pattern (2) | 2023.01.27 |
---|---|
멈춰있는 것들: Static Variable, Static Method (0) | 2023.01.25 |
은밀하게.. 정보 은닉과 접근 제어자 (0) | 2023.01.25 |
생성자( Constructor ), 변수 유효 범위 (1) | 2023.01.23 |
도트 연산자 (dot operator) (2) | 2023.01.23 |