Programming Languages/Java

[4장] 자바 생성자의 개념과 특징/ this 레퍼런스

마크투비 2021. 4. 10. 22:38

생성자의 개념과 특징

생성자

  • 객체가 생성될 때 초기화 목적으로 생성되는 메소드
  • 객체가 생성되는 순간에 자동 호출

생성자의 특징

  • 생성자의 이름은 클래스 이름과 동일
  • 생성자는 여러 개 작성 가능(다형성)
    • 단 인자의 개수 차이는 존재해야 함
public class Circle {
	public Circle() { //매개 변수 없는 생성자
     ~~~
    }
    public Circle(int r, String n) { //2개의 매개 변수를 가진 생성자
    ~~~
    }
}

 

  • 생성자는 객체 생성시 한 번만 호출
    • 자바에서 객체 생성은 반드시 new 연산자로 함
Circle pizza = new Circle(10, "자바피자"); //생성자 Circle(int r, String n)호출
Circle donut = new Circle(); //생성자 Circle()호출
//객체로 쓸 때는 pizza, donut과 같이 이름을 새로 부여해줘야 됨

 

  • 생성자의 목적은 객체 생성 시 초기화
  • 생성자는 리턴 타입을 지정할 수 없음
    • void 사용도 안 됨

기본 생성자(default constructor)

  • 인자가 아무것도 없는 생성자
  • 매개 변수 없고, 아무 작업 없이 단순 리턴하는 생성자
  • 디폴트 생성자라고도 불림
class Circle {
	public Circle() //기본 생성자 생성
}

 

기본 생성자의 자동 생성

  • 클래스에 생성자가 하나도 선언되어 있지 않을 때
  • 컴파일러에 의해 기본 생성자 자동 생성
  • 단, 클래스에 생성자가 선언되어 있는 경우에는 기본 생성자를 자동 생성해주지 않음

this 레퍼런스 - this.

  • 객체 자신에 대한 레퍼런스
  • this.멤버 형태로 멤버를 접근할 때 사용
  • this.은 객체 자신에 대한 레퍼런스
  • this와 this()는 다름
  • this.는 메소드에서 사용되며 현재 겍체를 가리킴
  • static 메소드에서는 사용할 수 없음

 

this()로 다른 생성자 호출

  • 같은 클래스의 다른 생성자 호출
  • 생성자 내에서만 사용 가능
  • 생성자 코드의 제일 처음에 있어야 함
  • 생성자가 있을 때, this()로 다른 생성자 호출 가능