Java

[Java, 객체지향] 생성자(constructor) 의미와 종류 (+this)

15호의 개발자 2021. 8. 11. 20:26
반응형

[Java, 객체지향] 생성자(constructor) 의미와 종류 (+this)

 

 

생성자

인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드를 생성자라고 한다.

즉, 생성자는 인스턴스 변수의 초기화 작업에 주로 사용된다.

 

생성자를 만들 때, 생성자의 이름은 클래스 이름과 같아야 한다.

또한 생성자는 리턴값이 없다. (= void를 붙이지 않는다.)

모든 클래스는 반드시 생성자를 가져야 한다.

 

 

 

 

생성자에는 기본 생성자와 매개변수가 있는 생성자가 있다.

 

 

1. 기본 생성자 (default constructor)

매개변수가 없는 생성자이며,

생성자가 하나도 없을 때는 컴파일러가 자동으로 추가해준다.

 

형식: 클래스이름( ) { }

 

 

2. 매개변수가 있는 생성자

매개변수가 있는 생성자이다.

기본 생성자 없이 매개변수가 있는 생성자만 있는 경우,

생성자를 호출하면 에러가 발생하므로

기본 생성자도 항상 작성해두는 습관을 갖는 것이 좋다.

 

 

 

cf. this() 와 this 의 차이

생성자 this()

생성자에서 다른 생성자를 호출할 때 사용한다.

같은 클래스 안에 있는 생성자를 호출할 때 사용하며, 클래스 이름 대신 this를 사용한다.

또한, 반드시 첫 번째 줄에서만 사용가능하다.

 

참조변수 this

참조변수 this는 인스턴스 자신을 가리키는 용도이다.

생성자와 인스턴스 메서드에서 사용 가능하며, 클래스 메서드에서는 사용 불가능하다.

지역 변수와 인스턴스 변수를 구별할 때 사용한다.

인스턴스 변수:  this.var

 

결론: 생성자 this()와 참조변수 this는 전혀 다른 것이므로 헷갈리지 않도록 주의한다.

 

 

 

 

 

반응형