[JAVA] this, 생성자, this()
■ this
자바에서 인스턴스 자기 자신을 가리킬 때 사용하는 키워드
this를 통해 생성자를 생성할 수 있다.
멤버 변수와 메서드의 매개변수의 이름이 같으면 둘 어떻게 구분?
- void initMember()가 class MemberInit 보다 안에 있기 때문에 우선순위를 가짐
- 그냥 name이라 하면 아무의미 없어서 this로 해야 자기 자신의 참조값을 가리킴
this를 제거하게 되면
name = name;
age = age;
grade = grade;
똑같은 매개변수이므로 멤버 변수의 참조값이 변경되지 않아 this를 사용해야함.
■ 생성자
인스턴스가 생성될 때 호출되는 인스턴스 초기화 메소드이며 인스턴스 변수의 초기화 작업에 사용되고, 인스턴스 생성 시에
실행되어야 할 작업을 위해서 사용된다.
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 반환타입(리턴 값)이 없고 void 사용하지 않는다.
- 생성자는 메소드와 다르지 않다.
- 메소드처럼 클래스 내에 선언되고, 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다.
■ 기본 생성자
- 매개변수가 없는 생성자를 기본 생성자
- 클래스에 생성자가 하나도 없으면 컴파일러는 매개변수가 없고, 작동하는 코드가 없는 기본 생성자를 자동으로 만들어준다
- 생성자가 하나라도 있으면 자바는 기본 생성자를 만들지 않는다.
■ this()
- 생성자의 이름으로 클래스 이름대신 this를 사용해야하고
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
위 아래에 this 중복이라 한 번만 적어서 호출하는 방법인 this() 기능 사용
this는 인스턴스 자신의 참조 값을 가리킨다. 자신의 생성자를 호출한다고 생각하면 된다.
이 처럼 this()를 사용하면 생성자 내부에서 다른 생성자를 호출할 수 있고 중복을 제거할 수 있다.