생성자(Constructor)

김수민·2023년 3월 9일
0

백엔드 부트캠프

목록 보기
11/52

생성자

생성자(Constructor)

  • 생성자: 객체를 생성하는 역할을 하는 클래스의 구성 요소. 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드
  • new 키워드를 사용하여 객체를 생성할 때에 호출되는 것이 이 생성자
  • 인스턴스 생성을 담당하는 것은 new 키워드이며, 생성자는 인스턴스 변수들을 초기화하는 데 사용되는 특수한 메서드
  • 생성자의 특징
    - 생성자의 이름은 반드시 클래스의 이름과 같아야 함
    - 생성자는 리턴 타입이 없음 (리턴 타입 자체가 존재하지 않음)
  • 생성자도 오버로딩이 가능하므로 한 클래스 내에 여러 개의 생성자가 존재할 수 있음

기본 생성자 vs 매개변수가 있는 생성자

기본 생성자(Default Constructor)

생성자를 따로 만들지 않아도 정상적으로 인스턴스를 만들 수 있는 이유는 만약 생성자가 클래스 안에 포함되어 있지 않은 경우 자바 컴파일러가 기본 생성자를 자동으로 추가해주기 때문

매개변수가 있는 생성자

  • 매개변수가 있는 생성자는 메서드처럼 매개변수를 통해 호출 시에 해당 값을 받아 인스턴스를 초기화하는데 사용
  • 고유한 특성을 가진 인스턴스를 계속 만들어야하는 경우 인스턴스마다 각기 다른 값을 가지고 초기화할 수 있어서 매우 유용함.

this vs this()

this()

this() 메서드: 자신이 속한 클래스에서 다른 생성자를 호출하는 경우에 사용

  • 두 가지 문법요소를 충족 시켜야 함
    1. this() 메서드는 반드시 생성자의 내부에서만 사용할 수 있음
    1. this() 메서드는 반드시 생성자의 첫 줄에 위치해야 함

this키워드

  • 인스턴스 변수와 매개변수를 이름만으로는 구분하기 어려워지는 문제가 발생하는데, 이를 구분해주기 위한 용도로 주로 사용되는 방법
    예. this.modelName = modelName 대신 modelName = modelName 라고 작성하면 둘 다 지역변수로 간주 됨
  • 모든 메서드에는 자신이 포함된 클래스의 객체를 가리키는 this라는 참조변수가 있는데, 일반적인 경우에는 컴파일러가 this.를 추가해주기 때문에 생략하는 경우가 많음

==> this는 인스턴스 자신을 가리키며, 우리가 참조변수를 통해 인스턴스의 멤버에 접근할 수 있는 것처럼 this를 통해서 인스턴스 자신의 변수에 접근할 수 있음

주로 인스턴스의 필드명과 지역변수를 구분하기 위한 용도로 사용됨

0개의 댓글